Splitting Algorithm