As I said, the DSL is a lot nicer as it is. I think the other implementation is a tad cleaner though, without `class_eval`. But I think the nicer DSL is what counts here.