Trying to get head around meta programming