interfaces definition refactoring