private void initMachine(Collection<State> states) {
		if (states == null || states.size() == 0) {
			throw new NullPointerException("Machine must have at least one state");
		}

		//put all the states into the hash map
		int numStartStates = 0;
		for (State state : states) {
			numStartStates += state.isStart()? 1 : 0;
			this.states.put(state.getID(), state);
		}
		
		if (numStartStates != 1) { //Invalid number of start states
			throw new InvalidParameterException("There must be exactly one start state");
		}
		
		this.alphabet = new char[] {'0', '1'};

	}