Add metaprogramming solution