basic worker thread
being explicit about thread management