Refactoring to delegate