I think it would be a good idea to treat the `headers` hash as immutable/frozen, and do something like this:

```ruby
def etag
  @etag ||= headers['ETag']
end

def etag= val
  @etag = val
end
```