Interface-abstraction and refactoring.