refactoring interface and names