move SpliApplyCombine to its own header and cpp file, will facilitate modulify it
prepare modulification of SplitApplyCombine
modulify SplitApplyCombine