moved lookup functions from index API to a seperate type to reduce size of the API and also to add the flexibility to having index-specific search functions