Metaprogramming

added some meta programming