generalized suggest function