allow setImmediate and clearImmediate as globals
rework setImmediate