hopefully slight reorg makes it clearer