namespace Nox.Game { public interface ICharacterSystems { IPerkFactory PerkFactory { get; } ICharacterFactory CharacterFactory { get; } IPartyFactory PartyFactory { get; } } public sealed class CharacterSystems : ICharacterSystems { public CharacterSystems(IPerkFactory perkFactory, ICharacterFactory characterFactory, IPartyFactory partyFactory) { PerkFactory = perkFactory; CharacterFactory = characterFactory; PartyFactory = partyFactory; } public IPerkFactory PerkFactory { get; } public ICharacterFactory CharacterFactory { get; } public IPartyFactory PartyFactory { get; } } }