better metaprogramming try3.rb