Clustering when k-means assumptions fail