some comments, refactoring, more tests