add some unit tests, update readme