Refactoring with strategy