Merge with latest updates from nuest/master

* Refactor class structure
* Add documentation in README