more functionality, refactoring, fixing bugs