parser could theoretically parse pair and list stuff, untested