changed Task to be more like real Parallel Task Library based on Damian Edwards' implmentation