extract insertion algorithm
improve insertion algorithm
furthest insertion