Instead of these `set_` methods that have to be implemented in each inheritor, you could pass these in on the args (something like an args hash) to the base class and default them to nil if not present. It could potentially clean up the implementation on the inheritors and get rid of all of these types of things:
```ruby 
def set_header
  nil
end
```