Refactored to strategy