modified some and added WorkerThreadGroup