Code Refactor

* improve readability
* clean up
* commenting
* README update