first caching implementation
cleanup
simple refactor
added PerRequestHttpCache