private void classify() throws TooManyDendritesException {
		final int MINPOINTS = 2;
 
		if (this.classiferEnabled) {
			//prepare the incoming data
			LinkedList<Double> dendriteValues = new LinkedList<Double>();			
			for (AbstractNode d : this.getDendrites()) {
				dendriteValues.add((double) d.getAxon());
			}		
			Vec frame = new DenseVector(dendriteValues);
			this.frames.add(new DataPoint(frame,null,null));
			DataSet dataset = new SimpleDataSet(this.frames);
			
			if (this.frames.size() > 2) {
				try {
					int[] designations = dbscan.cluster(dataset,MINPOINTS,(int[])null);
					this.cluster = DBSCAN.createClusterListFromAssignmentArray(designations, dataset);
					StringBuilder buffer = new StringBuilder();
					for (int designation : designations) {				
						buffer.append(designation); buffer.append(' ');
					}	
					this.data = buffer.toString();
					this.caughtRuntimeException = false;
				} catch (RuntimeException e) {
					//This seems to be a bug in the library. Just going to compensate for it
					System.out.println("Exception");
					this.caughtRuntimeException = true;
				}
			}
		} else {
			if (this.getDendrites().size() > 1) {
				throw new TooManyDendritesException();
			} else {
				this.data+=this.getDendrites().getFirst().getAxon()+" ";
			}
		}
	}