Moved cache stuff into it's own DbReader

So that we do not need to bother if the data is cached or not