Template Method pattern
Strategy pattern