agreed, but added the size == 1 optimization because it is easy.