Add search view
Add cashing
Generalising loader