Added first step of result caching with singleresult sets sync and async