split up ASTExtensions (only need the AST as a parameter and are thus
static)
and CommonTransformations (need a transformation context)