Added the strategy pattern.