updated kmeans algo