Добрый день. 
Есть сущность, которая хранит бухгалтерские балансы за несколько лет:
$company = new Company(
                $id = ID::generate(),
                $name = new Name('Ромашка"'),                
                ....
                $accounting = [          
                    new BalanceSheet('2017,'356743','-56913','189632','122733'),
                    new BalanceSheet('2018','76743','-16953','1492','233')
                ]
        );
Я хотел бы спроектировать возможность изменения баланса, хранящегося в 
$accounting
Т.е. сделать какой то метод 
refreshBalance
Пишу тест
$company = (new CreateBuilder())
                ->withAccounting([
                                                     //year// 
                     new BalanceSheet('2018','356743','-56913','189632','122733'),
                    new BalanceSheet('2018','76743','-16953','1492','233')
                    ])
                ->build();
     $company->refreshBalance($newBalance = new BalanceSheet('2018', '556743', '-56913', '189632', '122733'));
        $this->assertEquals($newBalance, $company->getBalance('2018'));
И тут я не могу сообразить. Если я сделаю метод для получения баланса за определенный год, то мне делать год ключом? 
getBalance($year) { return а что ретурн он должен?}
 
Нужно сделать 
year ключем в 
BalanceSheet('2018', ['556743', '-56913', '189632', '122733']))
 ? 
И соответственно делать 
refreshBalance(new BalanceSheet('2018', ['556743', '-56913', '189632', '122733'])))
, а метод должен проверять `2018`? 
Извините, если сумбурно написал