Merge with latest updates from nuest/master

refactor class structure and add documentation in README