Updated semantics and AST