private CommandExecutionResult executeInternal(Map<String, RegexPartialMatch> line0, AbstractEntityDiagram system,
			Url url, List<? extends CharSequence> s) {

		final String pos = line0.get("POSITION").get(0);

		final String code = line0.get("ENTITY").get(0);
		final IEntity cl1;
		if (code == null) {
			cl1 = system.getLastEntity();
			if (cl1 == null) {
				return CommandExecutionResult.error("Nothing to note to");
			}
		} else {
			cl1 = system.getOrCreateClass(code);
		}

		final IEntity note = system.createLeaf("GMN" + UniqueSequence.getValue(), s, LeafType.NOTE);
		note.setSpecificBackcolor(HtmlColorUtils.getColorIfValid(line0.get("COLOR").get(0)));
		if (url != null) {
			note.addUrl(url);
		}

		final Position position = Position.valueOf(pos.toUpperCase()).withRankdir(system.getRankdir());
		final Link link;

		final LinkType type = new LinkType(LinkDecor.NONE, LinkDecor.NONE).getDashed();
		if (position == Position.RIGHT) {
			link = new Link(cl1, note, type, null, 1);
			link.setHorizontalSolitary(true);
		} else if (position == Position.LEFT) {
			link = new Link(note, cl1, type, null, 1);
			link.setHorizontalSolitary(true);
		} else if (position == Position.BOTTOM) {
			link = new Link(cl1, note, type, null, 2);
		} else if (position == Position.TOP) {
			link = new Link(note, cl1, type, null, 2);
		} else {
			throw new IllegalArgumentException();
		}
		system.addLink(link);
		return CommandExecutionResult.ok();
	}