EOPBCTemplate - misleading method names _cacheFundraisingApps and _cacheFundraisingParams
The methods `_cacheFundraisingApps` and `_cacheFundraisingParams` suggest that parameters are cached as state variables in the contract similar to the multi-step deployment contract used for AragonBlack/Fundraising. However, the methods are just returning memory structs.\\n```\\nfunction \\_cacheFundraisingApps(\\n    Agent          \\_reserve,\\n    Presale        \\_presale,\\n    MarketMaker    \\_marketMaker,\\n    Tap            \\_tap,\\n    Controller     \\_controller,\\n    TokenManager   \\_tokenManager\\n)\\n    internal\\n    returns (FundraisingApps memory fundraisingApps)\\n{\\n    fundraisingApps.reserve            = \\_reserve;\\n    fundraisingApps.presale            = \\_presale;\\n    fundraisingApps.marketMaker        = \\_marketMaker;\\n    fundraisingApps.tap                = \\_tap;\\n    fundraisingApps.controller         = \\_controller;\\n    fundraisingApps.bondedTokenManager = \\_tokenManager;\\n}\\n\\nfunction \\_cacheFundraisingParams(\\n    address       \\_owner,\\n    string        \\_id,\\n    ERC20         \\_collateralToken,\\n    MiniMeToken   \\_bondedToken,\\n    uint64        \\_period,\\n    uint256       \\_exchangeRate,\\n    uint64        \\_openDate,\\n    uint256       \\_reserveRatio,\\n    uint256       \\_batchBlocks,\\n    uint256       \\_slippage\\n)\\n    internal\\n    returns (FundraisingParams fundraisingParams)\\n{\\n    fundraisingParams = FundraisingParams({\\n        owner:           \\_owner,\\n        id:              \\_id,\\n        collateralToken: \\_collateralToken,\\n        bondedToken:     \\_bondedToken,\\n        period:          \\_period,\\n        exchangeRate:    \\_exchangeRate,\\n        openDate:        \\_openDate,\\n        reserveRatio:    \\_reserveRatio,\\n        batchBlocks:     \\_batchBlocks,\\n        slippage:        \\_slippage\\n    });\\n}\\n```\\n
The functions are only called once throughout the deployment process. The structs can therefore be created directly in the main method. Otherwise rename the functions to properly reflect their purpose.
```\\nfunction \\_cacheFundraisingApps(\\n    Agent          \\_reserve,\\n    Presale        \\_presale,\\n    MarketMaker    \\_marketMaker,\\n    Tap            \\_tap,\\n    Controller     \\_controller,\\n    TokenManager   \\_tokenManager\\n)\\n    internal\\n    returns (FundraisingApps memory fundraisingApps)\\n{\\n    fundraisingApps.reserve            = \\_reserve;\\n    fundraisingApps.presale            = \\_presale;\\n    fundraisingApps.marketMaker        = \\_marketMaker;\\n    fundraisingApps.tap                = \\_tap;\\n    fundraisingApps.controller         = \\_controller;\\n    fundraisingApps.bondedTokenManager = \\_tokenManager;\\n}\\n\\nfunction \\_cacheFundraisingParams(\\n    address       \\_owner,\\n    string        \\_id,\\n    ERC20         \\_collateralToken,\\n    MiniMeToken   \\_bondedToken,\\n    uint64        \\_period,\\n    uint256       \\_exchangeRate,\\n    uint64        \\_openDate,\\n    uint256       \\_reserveRatio,\\n    uint256       \\_batchBlocks,\\n    uint256       \\_slippage\\n)\\n    internal\\n    returns (FundraisingParams fundraisingParams)\\n{\\n    fundraisingParams = FundraisingParams({\\n        owner:           \\_owner,\\n        id:              \\_id,\\n        collateralToken: \\_collateralToken,\\n        bondedToken:     \\_bondedToken,\\n        period:          \\_period,\\n        exchangeRate:    \\_exchangeRate,\\n        openDate:        \\_openDate,\\n        reserveRatio:    \\_reserveRatio,\\n        batchBlocks:     \\_batchBlocks,\\n        slippage:        \\_slippage\\n    });\\n}\\n```\\n