Start to implement the strategy pattern