update automation and metaprogramming