public CarPark() {
		this(Constants.DEFAULT_MAX_CAR_SPACES,
				Constants.DEFAULT_MAX_SMALL_CAR_SPACES,
				Constants.DEFAULT_MAX_MOTORCYCLE_SPACES,
				Constants.DEFAULT_MAX_QUEUE_SIZE);

		// Initialise the parking spots avaliable.
		maxCarSpaces = Constants.DEFAULT_MAX_CAR_SPACES
				- Constants.DEFAULT_MAX_SMALL_CAR_SPACES;
		maxSmallCarSpaces = Constants.DEFAULT_MAX_SMALL_CAR_SPACES;
		maxMotorCycleSpaces = Constants.DEFAULT_MAX_MOTORCYCLE_SPACES;
		maxQueueSize = Constants.DEFAULT_MAX_QUEUE_SIZE;
		totalSpaces = maxCarSpaces + maxSmallCarSpaces + maxMotorCycleSpaces;

		// Arrays to hold vehicles past/present.
		vehiclesInQueue = new ArrayList<Vehicle>(maxQueueSize);
		satisfiedVehicles = new ArrayList<Vehicle>();
		dissatifiedVehicles = new ArrayList<Vehicle>();

		// Arrays to hold numbers of each type of vehicle + a list to hold the
		// lists.
		motorCyclesParked = new ArrayList<Vehicle>();
		carsParked = new ArrayList<Vehicle>();
		smallCarsParked = new ArrayList<Vehicle>();
		allVehiclesParked = new ArrayList<ArrayList<Vehicle>>();

		allVehiclesParked.add(carsParked);
		allVehiclesParked.add(smallCarsParked);
		allVehiclesParked.add(motorCyclesParked);

	}