first pass at full parser; working on tests; problems with infinite recursion