the idea to order the completed task in the same order as they where submitted is to leverage
the delay queue. With the delay queue we can control the order by the getDelay and compareTo methods
where we can order the tasks in the same order as they where submitted.