knn revised