metaprogramming ch2 Methods