added workerthread (draft)