Added done_all, then_all, and tests