unrolled one batch operation, still more to do there
added check for Web Worker availability