support sum function