added black-box 'render' function to engine.py, added wrapper around parser which just outputs the AST, cleaned up style a bit, added a couple test functions