Refactor to interfaces
Remove tests