private void initializeNodes(int numInputs, int numOutputClasses){
		//check to see if the hiddenlayers and hiddennodes have been initialized, and if not,
		//initialize them to default values
		nodesList = new ArrayList<List<PerceptronNode>>();
		if(numHiddenLayers == -1){
			numHiddenLayers =  2;
		}
		if(numHiddenNodes == -1){
			numHiddenNodes = numOutputClasses;
		}
		
		//add numHiddenLayers + 1 layers, including one for the output nodes
		for(int i = 0; i < numHiddenLayers + 1; i++){
			nodesList.add(new ArrayList<PerceptronNode>());
			if(i == 0){
				for(int j = 0; j < numHiddenNodes + 1; j++){
					nodesList.get(i).add(new PerceptronNode(numInputs));
				}
			}
			else if(i < numHiddenLayers){
				for(int j = 0; j < numHiddenNodes + 1; j++){
					nodesList.get(i).add(new PerceptronNode(numHiddenNodes));
				}
			}
			else{
				for(int j = 0; j < numOutputClasses; j++){
					nodesList.get(i).add(new PerceptronNode(numHiddenNodes));
				}
			}
		}
	}