Use here_document with `class_eval` to simplify debugging: ```ruby class_eval <<-"end_eval", __FILE__, __LINE__ def #{block_accessor}(*args, &block) unless args.empty? && block.nil? args.push block if block_given? @#{block_accessor} = [args].flatten end @#{block_accessor} end end_eval ``` [`class_eval`](http://www.ruby-doc.org/core-2.1.5/Module.html#method-i-class_eval) (as well as `module_eval` and some other methods) actually takes blocks _or strings_ for evaluation, so instead of passing a block, we pass everything as a [here-document](http://en.wikipedia.org/wiki/Here_document#Ruby) string, and add two additional params for filename and line in that file. When exception hits the fan, it will be trivial to locate.