add seracher functionalities