Refactoring: interfaces, base classes