add algorithm for_each, gather