first version package handler
changed task queue to semaphore