newbie metaprogramming question