readme update
tests, refactor