Why the metaprogramming?