metaprogramming updates