Issue #10 externalize filtering code into web worker