added more functionality and tests
continuing work