Going further: metaprogramming with Sourcery