strategy pattern example: SimUDuck