working through the strategy design pattern