I know it's easy to use struct but it hides some logic (which is easier to see when you have attr_accessor call). There is also a nasty bug when you try to load such class twice (which in some cases is legit usecase): 

```
2.0.0p353 :001 > class Mad < Struct.new(:sheep)
2.0.0p353 :002?>   end
 => nil
2.0.0p353 :003 > class Mad < Struct.new(:sheep)
2.0.0p353 :004?>   end
TypeError: superclass mismatch for class Mad
	from (irb):3
	from /Users/madsheep/.rvm/rubies/ruby-2.0.0-p353/bin/irb:12:in `<main>'
```