diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 1a16c91..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,269 +0,0 @@
-CHANGES
-=======
-
-* add deviation to reports
-* Improvements in Dockerfile
-* Dockerfile updates
-* fix config file examples, houskeeping, etc
-* Create docker.md
-* Dockerfile to build tool with dependecies
-* fix problem with old paramiko
-* add insecure openstack connection support2
-* add insecure openstack connection support
-* 2.0 ready
-* fixes
-* temporary commit
-* fix file prefill check
-* fix build comparisio
-* add lat/bw limits, fio binaryes, fix bugs, fix latency calculations, etc
-* v2 is comming
-* tempo commit
-* tempo commit
-* tempo commit
-* tempo commit
-* update TODO
-* fix fio iops/lat/bw file name patterns
-* add mixed load test, other fixes
-* New cpu load option, bottlenecks
-* a lot of changes
-* fix modules and 2.6 compatibility
-
-v0.2
-----
-
-* fix muptiply tests in one run, update report generation
-* a lot of chenges
-* Fixed getting os_auth_url
-* fix tasks
-* a lot of changes
-* a lot of changes
-* a lot of changes
-* small db tests fixes
-* pgbench fixes
-* Mysql tests
-* release preparation
-* fixes in ceph tests, add linearity plot
-* improve OS preparation, change config structure
-* Create README.md
-* report changes
-* fixes
-* fixes
-* a lot of fixes
-* fix sftp exception types
-* fix ceph test ram usage
-* add local sensor datastore, make IO tests granular
-* add during test webiu
-* improve bg. process monitoring
-* Added tpcc-mysql suite
-* changed for new data format
-* sensors correction, postprocessing
-* fixes, fixes, fixes
-* fixes, fixes, fixes
-* fixes, fixes, fixes
-* temporary dir creation fixed
-* itest.py code reorganization, move test node logs to /var/wally folder to survive test node reboot
-* improve paramiko integration, replace .mesage for exceptions with str(exc)
-* fixing issues with bad ssg connection
-* now can read openstack creds from arbitrary openrc file
-* not needed exception removed
-* run tests on nodes in offline mode
-* improvement of protocol refactoring
-* fix bugs and 2.6 compatibility
-* fix python 2.6 compatibility
-* update report
-* fix reports
-* update usb hdd config
-* fix requirements.txt, improve test end time representation
-* start adding unit tests, rework config compiler
-* html report changed
-* more improvements and fixes and new bugs
-* fixing, improve sersors installation code
-* very large refactoring
-* fixing bugs
-* report page table of images added
-* per vm bw on chart
-* fix sensors deploy code
-* lot of fixes
-* Lab info added to report layout
-* Fixed charts
-* remove personal config
-* rename bw_mean to bw, other fixes
-* pre-release bug fixes
-* pre-release updates, bug fixes
-* pre-release updates, bug fixes
-* fix pre-demo bugs
-* change table output for easier postprocessing
-* Added get_openrc to cluster
-* add postprocessing, table difference generation and scipy approximation
-* discovering fixed
-* removed trash
-* Copying openrc from controller node, adding to global config and external ip to config yaml added
-* wqrefactor postprocessing code
-* fixed requirements
-* report.html template
-* Improved io charts
-* pep8 for MOL 305
-* MOL 305, added permanent journal that allows to remove virtual machines that has remained from previous tests that was crashed
-* add mt results example
-* fix multythreaded bugs in disk_test_agent, add linearity data and script
-* MOL 314 config file path added as cmd line parameter
-* MOL 302, build metainfo added to cmd line args
-* MOL 319, connector code integrated in run_test.py
-* single node tests
-* get_greds method in fuel_rest_api.Cluster
-* Fixed pgbench tests
-* postprocessing added (plot and dev)
-* large commit. refactoring, fio code totally reworker, huge improvenent in test time and results, etc
-* Connector for adding/cleaning ip forwarding rules added
-* changes to io.py applied to script, tasks for fio added
-* final refactoring
-* make openstack vm spawn code works
-* large commit. new code, with sensors, line count dropped, etc
-* small refactoring
-* code review
-* run_test refactoring and small fixes
-* code review
-* updates to node complete test, add io_py_result_processor.py lib
-* fixes, add complete test suite
-* automatic test running and sending to webapp
-* Automated test lanucher has been added. Run a bunch of test that create vm, configure it, run test and clean allocated resources
-* some unknown changes
-* update single-node test scripts
-* large refactoring of new code
-* remove old results db
-* single-node OS tests addede
-* add list sensors cmd line options
-* fixed rebase error
-* discovering
-* config.py changed
-* config file name from cmd args added
-* packer option added
-* protocol added
-* returned class changed
-* Node class
-* ceph discovering
-* config moved to yaml, redundant config removed
-* non storage funtions removed to data_processing.py, doc strings added to storage_api
-* average calculation removed
-* percent removed, name changed
-* refactor get_latency
-* nodes discovering
-* fix memory info code
-* graphana integration
-* continue work on new sensor model
-* lost import
-* ps_mem truncation
-* perprocess ram usage added
-* perprocess cpu usage added
-* io_sensor: Add get_latency function
-* system RAM usage sensor added
-* system cpu usage sensor added
-* new sensor manage code
-* update reporing tool
-* removed rally
-* fake run_test
-* a lot of fixes and improvements
-* meta info pep8
-* meta info added
-* pep8 added, lab_id and build_id added as a parameters to storage_api.load_data, additional params added to params combination
-* Created db_manage script to create,drop,upgrade,downgrade,migrate db
-* pgbench run.sh: receive num clients and transactions through params
-* Two scripts, pgbench tests
-* lab info save added
-* pg scripts
-* json returned to api endpoints
-* MOL 186, migration from file storage to SQL Databse
-* add local runner, fix some bugs
-* move files around
-* code review
-* storage code removed from web app file
-* ability to cache images on hard drive added
-* MOL 159, sending test results added, rest api fixed, mergind builds on server changed
-* saving images
-* implements MOL-180: make run_test.py compatible with FUEL master
-* fix small bugs
-* update scripts, prepare for fixing MOL-180
-* fix MOL-177: Fix logging
-* implement MOL-175: automatically select amount of vm
-* implement MOL-169 - Decrease env preparation time (parallelize requests to openstack, ssh connections, etc)
-* Implement MOL-168 - Allow to run set of tests on single vm
-* Changed title, sync/async displaying
-* tests finally can works over pure novaclient/ssh
-* merge of builds added
-* final
-* link changed to build name
-* small fix
-* build name added
-* h1 changed to h2
-* table width smalled
-* layout changed, jquery added, comparision fixed
-* kbps style changed
-* small changes to code layout and html
-* ref to index and dates to builds added
-* fixes in test code. done. ready to swith from rally
-* templates for aggregating added
-* aggregating data from lab nodes added
-* Fixed y axe
-* images in table and particular builds added
-* large refactoring, ready to move away from rally
-* keystone client added
-* collecting data from nodes added
-* Added missing init.py
-* fixed displaying charts
-* fixed displaying charts
-* logger added
-* modified x scale. splitted sync/async
-* config added test path
-* test path changed
-* post fixed
-* fake test added
-* requests added to requirements.txt
-* test add
-* lab description added
-* POST for receiving test results fixed
-* build type master added
-* build names added to test_result.json
-* 500 fix
-* test results added
-* test results added
-* we need MORE MONKEYPATCHING
-* add data extractor
-* add resutls
-* updates to tests
-* lab info page added
-* separate tables and images
-* tables added to webapp
-* added GChartWrapper to requirements
-* server host fixed
-* fixed data generator
-* fixed charts
-* data gen fixed
-* empty test error fixed
-* one more
-* path fixed
-* misc
-* hardcoded path removed
-* web app added
-* fix itertools.production usage
-* storage api changed
-* charts
-* small fix
-* storage get recent bg fixed
-* add terstdata generator
-* add all-on-one shell scripts
-* factory function added
-* factory function for storages added
-* recent builds method added to storage api
-* now can run multiply tests on same vm
-* fix results output
-* fix storage code style, fixes in rally run code
-* local storage and google docs finished
-* storage api added
-* add directory reqursive copying
-* fix erro message
-* add fio support. It's ALIVE
-* add rally patch-and-run script and iozone scenario
-* fix
-* creating worskeet added
-* report maker adder
-* Initial commit
diff --git a/Dockerfile b/Dockerfile
index 124e620..ceedf9c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -10,8 +10,7 @@
 
 COPY . /opt/wally
 
-# git clone https://github.com/Mirantis/disk_perf_test_tool.git /opt/disk_perf_tool && \
-# git checkout v2.0 && \
+# git clone https://github.com/Mirantis/disk_perf_test_tool.git /opt/disk_perf_tool
 
 RUN git clone https://github.com/koder-ua/cephlib.git /opt/cephlib && \
     git clone https://github.com/koder-ua/xmlbuilder3.git /opt/xmlbuilder3 && \
diff --git a/INSTALL.md b/INSTALL.md
index 57d8a9b..54d5e79 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,48 +1,32 @@
 Installation
-------------
+============
 
-Only Redhat/Ubuntu/Debian distros are supported
+Requirements:
+    * python 3.6+ (all packages: python3 python3-dev python3-pip python3-venv python3-tk)
 
-	# git clone https://github.com/Mirantis/disk_perf_test_tool wally
-	# cd wally
+Manual:
+-------
 
-	# git clone https://github.com/Mirantis/disk_perf_test_tool.git wally
-	# cd wally
+    git clone https://github.com/Mirantis/disk_perf_test_tool.git
+    git clone https://github.com/koder-ua/cephlib.git
+    git clone https://github.com/koder-ua/xmlbuilder3.git
+    git clone https://github.com/koder-ua/agent.git
+    cd disk_perf_test_tool
+    python3.6 -m pip install wheel
+    python3.6 -m pip install -r requirements.txt
+    python3.6 -m wally --help
 
-For small installation (test inly)
 
-	# ./install.sh
+Docker:
+-------
 
-For full installation (test + html report)
+Build:
 
-	# ./install.sh --full
+    git clone https://github.com/Mirantis/disk_perf_test_tool.git
+    docker build -t <username>/wally .
 
-Manual installation:
+To run container use:
 
-Install : pip, python-openssl python-novaclient python-cinderclient
-python-keystoneclient python-glanceclient python-faulthandler,
-python-scipy python-numpy python-matplotlib python-psutil
+    docker run -ti <username>/wally /bin/bash
+    wally --help
 
-Then run
-	
-	# pip install -r requirements.txt
-
-Create a directory for configs and copy wally/config_examples/default.yaml
-in it.
-
-Create a directory for results and update default.yaml
-settings::results_storage value to point to this directory.
-
-Copy appropriate file from wally/config_examples into the same folder,
-where default.yaml stored, update it, accordingly to you system and run
-wally
-
-$ export PYTHONPATH="$PYTHONPATH:WALLY_DIR"
-
-for python 2.7
-
-$ python -m wally test "my test comment" CONFIG_FILE
-
-for python 2.6 or 2.7
-
-$ python -m wally.\_\_main\_\_ test "my test comment" CONFIG_FILE
diff --git a/README.md b/README.md
index 96eeda7..46760e6 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
 Block storage devices tests tool. See wiki for details
 
 Look into config-example for examples of config file.
-Copy example in same folder asn replace ${VAR} with appropriate value
+Copy example in same folder and replace ${VAR} with appropriate value
diff --git a/docker_file.md b/docker_file.md
deleted file mode 100644
index 2301011..0000000
--- a/docker_file.md
+++ /dev/null
@@ -1,7 +0,0 @@
-To build container use command:
-	
-    docker build -t <username>/wally .
-
-To run container use:
-
-    docker run -t -i <container-id>
diff --git a/requirements_extra.txt b/requirements_extra.txt
deleted file mode 100644
index e01095f..0000000
--- a/requirements_extra.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-python3-env
-gcc
-python3-dev
-libssl-dev
-python3-tk
diff --git a/run.py b/scripts/run.py
similarity index 100%
rename from run.py
rename to scripts/run.py
