A better AST representation, and byte code