@Override
    public Balance createNewChild(TreeMap<String, String> properties) {
        Balance balance = new Balance(accounts);
        balance.setName(properties.get(NAME));
        balance.setLeftName(properties.get(Balances.LEFTNAME));
        balance.setRightName(properties.get(Balances.RIGHTNAME));
        balance.setLeftTotalName(properties.get(Balances.LEFTTOTALNAME));
        balance.setRightTotalName(properties.get(Balances.RIGHTTOTALNAME));
        balance.setLeftResultName(properties.get(Balances.LEFTRESULTNAME));
        balance.setRightResultName(properties.get(Balances.RIGHTRESULTNAME));

        ArrayList<String> leftTypesString = Utils.parseStringList(properties.get(Balances.LEFTTYPES));
        ArrayList<AccountType> leftTypes = new ArrayList<>();
        for(String s: leftTypesString){
            leftTypes.add(accountTypes.getBusinessObject(s));
        }
        balance.setLeftTypes(leftTypes);

        ArrayList<String> rightTypesString = Utils.parseStringList(properties.get(Balances.RIGHTTYPES));
        ArrayList<AccountType> rightTypes = new ArrayList<>();
        for(String s: rightTypesString){
            rightTypes.add(accountTypes.getBusinessObject(s));
        }
        balance.setRightTypes(rightTypes);

        return balance;
    }