first version with  task queue