Add a definition of metaprogramming