added etag handling