private void buildLawnmower() throws MowItNowException {
		if (CollectionUtils.isEmpty(listString))
			throw new MowItNowException(BAD_LIST);
		// Analyse the position
		final String firstLine = listString.remove(0);
		Pattern pattern = Pattern.compile("^([0-9]+) +([0-9]+) +([NWES])$");
		Matcher matcher = pattern.matcher(firstLine);
		if (!matcher.matches())
			throw new MowItNowException(BAD_LIST);
		final Coordinate coordinate = new Coordinate();
		coordinate.setX(Integer.parseInt(matcher.group(1)));
		coordinate.setY(Integer.parseInt(matcher.group(2)));
		final Lawnmower lawnmower = new Lawnmower();
		lawnmower.setCoordinate(coordinate);
		lawnmower
				.setCurrentOrientation(OrientationEnum.parse(matcher.group(3)));

		// Analyse the movements list. If no line, no movement
		if (listString.size() > 0) {
			final String secondeLine = listString.remove(0);
			if (StringUtils.isNotBlank(secondeLine)) {
				// We authorize more letters than A, D and G but only these one
				// are used
				if (!secondeLine.matches("^[A-Z ]*$"))
					throw new MowItNowException(BAD_LIST);
				final String[] splitLine = secondeLine.split("");
				if (ArrayUtils.isNotEmpty(splitLine)) {
					for (String movement : splitLine) {
						final MovementEnum movementEnum = MovementEnum
								.parse(movement);
						if (movementEnum != null)
							lawnmower.addMovement(movementEnum);
					}
				}
			}
		}
		garden.addLawnmower(lawnmower);
		// If the collection is not empty, it stays some lawnmower to build
		if (CollectionUtils.isNotEmpty(listString))
			buildLawnmower();
	}