offloading search to backend