Refactored search() as per discussion - searchCriteria() with generated search criteria in base model, search() in model