Made new class SearchableCollection and refactored existing classes to use it.