private void FindClusters(IList<Point> pointList)
{
this.InitializeAlgorithm(pointList);
this.algorithm.IterateUntilStable();
if (this.algorithm.ClusterCount > 0)
{
var prototypes = this.FlattenIfRequired(this.MergeClustersIfRequired(this.algorithm.Clusters));
this.value = new ClusterCollection(prototypes.Select(p => p.ToCluster()).ToList());
}
}