Added metaprogramming skeleton