metaprogramming fix