knn now handles non-number attributes