I feel that this code introduces a meta programming unnecessarily. I know it is a cultural thing in Ruby and Rails to look for elegance (or perceived elegance) than simplicity, but it comes at a cost. For example, * Why use symbols and then constantize it? Just specify the class name. * Why use meta programming to call the `inherited` hook and create classes dynamically. Just create the classes manually. In my experience, simplicity beats elegance.