API Refactoring (moving to interfaces)