add initial code for kNN