first pass with knn