interface for mocking