start accumulate implementation