some progress on TaskQueue
finish TaskQueue
need to come up with a better name...