fix top-level parsing
add ASTs and transform