added kmeans knn