move search logic to seaprate use case