digraph SystemModel {
	rankdir=LR;
	peripheries=0;

	/* users */
	{
		node [image="stickman.png", labelloc="b", shape="none"];
		player[label="Player"];
		host[label="Host"];
		spectator[label="Spectator"];
	}

	/* subsystems */
	/* if you want to rename any of these, it is probably easiest
	* to leave the ID the same, and just change the label */
	subgraph clusterSystem {
		label = "System Boundry";
		style = filled;

		node [style=solid];
		peerReview[label="Peer Review"];
		performance[label="Performance"];
		standings[label="Standings"];
		gs[label="Game Score"];
		search[label="Search"];
		pm[label="Private Message"];
		alerts[label="Alerts"];
		pairings[label="Pairings"];
		details[label="Tournament Details"];
		backup[label="Backup"];
		registration[label="Registration"];
	}

	/* all the relationships */
	spectator -> search;
	standings -> spectator;
	alerts -> spectator;
	pairings -> spectator;
	
	player -> spectator [arrowhead="onormal"];
	player -> peerReview;
	player -> performance;
	player -> registration;
	player -> pm;
	pm -> player;

	host->spectator [arrowhead="onormal"];
	host->alerts;
	host->details;
	host->registration;
	host -> pm;
	pm -> host;
	
	peerReview -> standings;
	performance-> standings;
	gs -> performance;
	details -> backup;
	details -> pairings;
	registration -> pairings;
}