Introductory changes to implement a strategy pattern