removes logic that branches on forInteractive
compat => internal
injects context into AsyncBase