constructor(ISavingsContractV2 _savings) ReentrancyGuard() {

  // @audit --> there should be a input validation

  // As immutable storage variables can not be accessed in the constructor,
  // create in-memory variables that can be used instead.
  IERC20 mAssetMemory = IERC20(_savings.underlying());

  // infinite approve Savings Contract to transfer mAssets from this contract
  mAssetMemory.safeApprove(address(_savings), type(uint256).max);

  // save to immutable storage
  savings = _savings;
  mAsset = mAssetMemory;

  emit Initialized(_savings);
}
