sure. one comment is that i've never seen dup take a block before. is that something supported via http or a part of ruby i didn't know about? trying it in a repl didn't seem to yield that block:
```ruby
irb(main):004:0> str = "ixti"
=> "ixti"
irb(main):005:0> str.dup { |x| p "hello #{x}" }
=> "ixti"
irb(main):006:0> RUBY_DESCRIPTION
=> "ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin11.0]"
irb(main):007:0>
```
i really donno http gem that well to offer good advice :/ it looks like the headers setter was being used to coerce a hash into a HTTP::Headers object, so you could keep duplication low and not repeat that coercion logic across a lot of places(maybe) by providing HTTP::Headers.from_hash() or something like that. then it'd be, `@headers = HTTP::Headers.from_hash(h)`. how HTTP::Headers wraps that hash(with delegator or not, etc) i'm not too sure about.