http reading now works and passes tests
add LRU cache on index lookup, saves a bit of time in general and esp. over HTTP