Normally a real unit of work would track changes to our persistence store and handle actual transactions.
Inheritance: IUnitOfWork
        public static void Build()
        {
            UnitOfWork = new InMemoryUnitOfWork();
            ClientProjections = new ClientProjections(UnitOfWork.Repository);
            ClientRepository = new ClientRepository(UnitOfWork.Repository);
            ClientService = new ClientService(ClientRepository, new AccountNumberService(), UnitOfWork);
            AccountProjections = new AccountProjections(UnitOfWork.Repository);
            AccountRepository = new AccountRepository(UnitOfWork.Repository);
            AccountService = new AccountService(AccountRepository, UnitOfWork);
            ClientPassedAwayHandler = new ClientPassedAwayHandler(AccountRepository, UnitOfWork);

            SubscribeToEvents();
        }
        public static void Build()
        {
            LogFactory.BuildLogger = type => new ConsoleWindowLogger(type);

            Repository = new InMemoryRepository();
            DocumentStore = new InMemeoryDocumentStore();
            DataQuery = Repository as IDataQuery;
            UnitOfWork = new InMemoryUnitOfWork(Repository);

            AccountStatusHistoryProjection = new AccountStatusHistoryProjection(Repository);
            ClientViewProjections = new ClientViewProjections(Repository);

            ClientRepository = new ClientRepository(DocumentStore);
            ClientApplicationService = new ClientApplicationService(ClientRepository, UnitOfWork);
            AccountRepository = new AccountRepository(DocumentStore);
            AccountNumberService = new AccountNumberService(DataQuery);
            AccountApplicationService = new AccountApplicationService(AccountRepository, AccountNumberService, UnitOfWork);

            RegisterCommands();
            RegisterViews();
            SubscribeToCommands();
            RegisterCommandValidators();
            SubsribeToEvents();

            LookupTables.Register<AccountStatusLookup, AccountStatusType>(Repository);
        }