make WorkerPool abstract
abstract worker pool
fix compile errors