major cleanup and refactoring, no breaking changes, renamed lib and filled out documentation