add new algorithm
merge