wrote some more tests and mocks