parsing is hard