added support for honoring etags and caching
Merge branch 'feature-etags' into develop