give up strategy pattern