metaprograming can be beautiful!