first version with a working web worker