add divide and conquer