for clustering