public ClusterCollection Create(IList<Point> points)
{
var reducedPoints = this.ReducePoints(points);
if (this.AreEnoughPointsForClustering(reducedPoints.Count))
{
this.FindClusters(reducedPoints);
this.AssignAllPoints(points);
}
else
{
this.value = new ClusterCollection();
}
return this.value;
}