add search route/view
add callbacks to update cache