seperated Indexer and Searcher classes for flexibility