redisign with async to allow for end of task report to engineer