tests and refactoring
read-me