refactor out search into SearchView & Controller