splitting up the fetch internals a bit
a bit more when.js related cleanup
no need to handle the eagerOption deletion in the nextTick