But, if trying to eliminate cruft, why include define_singleton_method? Why not just set the proper scope and define_method? Same with instance_eval, class_eval (and module_eval maybe?)- why not just set the scope to define whether you are in instance, class, eigenclass, etc. and use instance_eval? Not a criticism, but a serious question if the goal is to pare it down.