add unit tests
more test coverage