add unit tests, update readme