@Override
	protected List<Cluster<?>> cluster()
	{
		if (this.clusters == null)
		{
			this.clusters = new ArrayList<Cluster<?>>();
		}
		for (Object r : this.sourceData)
		{
			if (!this.sourceData.isVisited(r))
			{
				this.sourceData.setVisited(r,true);
				Cluster<?> c = this.rangeQuery(r);

				if (c.getRecords().size() < this.minPts)
				{

					this.sourceData.setNoise(r,true);

				}
				else
				{

					Cluster<?> addCluster = this.expandCluster(r, c);
					this.clusters.add(addCluster);

				}
			}
		}
		return this.clusters;
	}