Bit more work on parser; works for non-trivial stuff now