first pass of the inverse/caching functions, hope they work