first 3 paragraphs of 3.1
upt to 2 kinds of ctxs
up to lworkers