Support for expressions, basic end-to-end example, assorted cleanups