Extract Interface Refactoring #869