private Cluster loadConfiguration(String configurationName)
	{
		try
		{
			// Get the document element from the XML file
			File file = new File(this.configurationsFile);
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = dbf.newDocumentBuilder();
			Document doc = db.parse(file);
			doc.getDocumentElement().normalize();

			// Create the list of nodes
			NodeList nodeList = doc.getElementsByTagName("configuration");
			int numNodes = nodeList.getLength();

			for (int i = 0; i < numNodes; i++)
			{
				Node node = nodeList.item(i);

				if (node.getNodeType() != Node.ELEMENT_NODE)
					continue;

				Element element = (Element) node;

				String name = element.getElementsByTagName("name").item(0).getChildNodes().item(0).getNodeValue();

				// Verify that the current configuration has the desired name
				if (!name.equals(configurationName))
					continue;

				// Get the list of bodies in the configuration
				NodeList bodiesList = element.getElementsByTagName("body");
				int numBodies = bodiesList.getLength();
				Body[] bodies = new Body[numBodies];

				// Extract the information for each body
				for (int j = 0; j < numBodies; j++)
				{
					Node bodyNode = bodiesList.item(j);

					if (bodyNode.getNodeType() != Node.ELEMENT_NODE)
						continue;

					Element bodyElement = (Element) bodyNode;

					// Find the body's diameter, mass, position, and velocity
					Double diameter = Double.parseDouble(bodyElement.getElementsByTagName("diameter").item(0).getChildNodes().item(0).getNodeValue());
					Double mass = Double.parseDouble(bodyElement.getElementsByTagName("mass").item(0).getChildNodes().item(0).getNodeValue());
					Double s_x = Double.parseDouble(bodyElement.getElementsByTagName("s_x").item(0).getChildNodes().item(0).getNodeValue());
					Double s_y = Double.parseDouble(bodyElement.getElementsByTagName("s_y").item(0).getChildNodes().item(0).getNodeValue());
					Double v_x = Double.parseDouble(bodyElement.getElementsByTagName("v_x").item(0).getChildNodes().item(0).getNodeValue());
					Double v_y = Double.parseDouble(bodyElement.getElementsByTagName("v_y").item(0).getChildNodes().item(0).getNodeValue());
					String RGB = bodyElement.getElementsByTagName("RGB").item(0).getChildNodes().item(0).getNodeValue();

					SpaceVector position = new SpaceVector(s_x, s_y);
					SpaceVector velocity = new SpaceVector(v_x, v_y);

					// Find the planet's color
					String[] colorValues = RGB.split("-");
					int r = Integer.parseInt(colorValues[0]);
					int g = Integer.parseInt(colorValues[1]);
					int b = Integer.parseInt(colorValues[2]);
					Color color = new Color(r, g, b);

					Body body = new Body(diameter, mass, position, velocity, color);
					bodies[j] = body;
				}

				// Return the desired Cluster
				Cluster cluster = new Cluster(bodies);
				return cluster;
			}
		}

		catch (Exception e)
		{
			System.out.println(e.getMessage());
		}

		return new Cluster();
	}