public ArrayList<Pair> serialise() throws MVDException
	{
		Pair.pairId = 1;
		if ( origSize < 15 )
			origSize = 15;
		numParents = 0;
        ArrayList<Pair> pairs = new ArrayList<Pair>( origSize );
		printAcross( pairs, graph.start, allVersions );
		if ( parents.size() != 0 )
			throw new MVDToolException("Mismatched parent arc");
		if ( orphans.size() != 0 )
			throw new MVDToolException("Mismatched child arc");
		return pairs;
	}