collapsed to one line apiece to make it easier to parse