public void enterFromRail(Color player, Integer dest) {
		if ((player == this.getPlayer1()
				&& dest < 7)
			|| (player == this.getPlayer2()
				&& dest > 18)) {
			// make sure it's in the correct quadrant
			Integer dist = 0; // if this doesn't get changed below, something seriously bad is hapened
			if (player == this.getPlayer1()) {
				dist = dest;
			} else if (player == this.getPlayer2()) {
				dist = 25 - dest;
			}
			if (this.getState().movesLeft.contains(dist)) {
				// make sure they can move there
				BackgammonState newState = new BackgammonState(this.getState());
				// "use" the move
				newState.movesLeft.remove(dist);
				// move the piece
				if (newState.move(newState.rails.get(player), newState.points.get(dest - 1))) {
					// if the move was valid
					// push the undo state
					this.state.add(newState);
				}
			}
		}
	}