Interface and refactoring