accumulate procedure