Apply strategy and template method