add accumurate function interface