initial version---just skeleton, no web worker yet