small reordering to make sense of structure
Better Type useage in AST.