Refactoring to return interfaces where possible