add caching and etags and hbase exists checks