interface: refactoring