start rewrite of background generation

Use web workers to free up interactive thread