added insertion sort variation