add Etag and Last-Modified support