add dispatched accumulation functions (tested)