add strategy pattern example