Added better handling of searching and filtering by seperating out into separate views/viewmodels