modify strategy pattern