public void initialize() {
		if(Configuration.hasParameter("DistributionModel/Line/FromX") && 
				Configuration.hasParameter("DistributionModel/Line/FromY") &&
				Configuration.hasParameter("DistributionModel/Line/ToX") &&
				Configuration.hasParameter("DistributionModel/Line/ToY")) {
			try {
				previousPositionX = Configuration.getDoubleParameter("DistributionModel/Line/FromX");
				previousPositionY = Configuration.getDoubleParameter("DistributionModel/Line/FromY");
				dx = Configuration.getDoubleParameter("DistributionModel/Line/ToX") - previousPositionX;
				dy = Configuration.getDoubleParameter("DistributionModel/Line/ToY") - previousPositionY;
			} catch(CorruptConfigurationEntryException e) {
				sinalgo.runtime.Main.fatalError(e);
			}
			if(numberOfNodes <= 1) { // place the single node in the middle
				dx /= 2;
				dy /= 2;
			} else { 
				dx /= (numberOfNodes -1);
				dy /= (numberOfNodes -1);
				previousPositionX -= dx;
				previousPositionY -= dy;
			}
		} else { // default horizontal line
			dy = 0;
			dx = ((double) Configuration.dimX) / (this.numberOfNodes + 1);
			previousPositionX = 0;
			previousPositionY = Configuration.dimY / 2;
		}
	}