add generic insertion sort