Large refactoring, many node transformations added