add details to readme
some more testing and refactoring