added metaprogramming chapters