// Business constructor
 public Candidate(
     Round round
     ,int skill
     ,int relationship
     )
 {
     _unique = Guid.NewGuid();
     InitializeResults();
     _round = new PredecessorObj<Round>(this, RoleRound, round);
     _skill = skill;
     _relationship = relationship;
 }
            public CorrespondenceFact CreateFact(FactMemento memento)
            {
                Round newFact = new Round(memento);

                // Create a memory stream from the memento data.
                using (MemoryStream data = new MemoryStream(memento.Data))
                {
                    using (BinaryReader output = new BinaryReader(data))
                    {
                        newFact._index = (int)_fieldSerializerByType[typeof(int)].ReadData(output);
                    }
                }

                return newFact;
            }
 // Business constructor
 public Turn(
     Company company
     ,Round round
     )
 {
     InitializeResults();
     _company = new PredecessorObj<Company>(this, RoleCompany, company);
     _round = new PredecessorObj<Round>(this, RoleRound, round);
 }
 // Results
 // Business constructor
 public Gig(
     Round round
     ,IEnumerable<Resource> resources
     ,int duration
     ,int term
     )
 {
     _unique = Guid.NewGuid();
     InitializeResults();
     _round = new PredecessorObj<Round>(this, RoleRound, round);
     _resources = new PredecessorList<Resource>(this, RoleResources, resources);
     _duration = duration;
     _term = term;
 }