A meta programming exercise