implements search