refactor specs

define related classes in each describe block
memoize_class_method

does what it sounds like
avoids opening metaclasses
0.2.0