use tap for tests, write more tests