Move impl from indexer to retriever and make the code compiled
Refactor indexer and retriever, only index if not yet indexed, add indexer application