```\nfunction _updateVirtualPrice(uint256 _currentBlockTime, address _collateralAddress) internal { \n    (   ,\n        ,\n        ,\n        uint256 interestPer3Min,\n        uint256 lastUpdateTime,\n        uint256 virtualPrice,\n\n    ) = _getCollateral(_collateralAddress);\n    uint256 timeDelta = _currentBlockTime - lastUpdateTime;\n    //exit gracefully if two users call the function for the same collateral in the same 3min period\n    //@audit increments \n    uint256 threeMinuteDelta = timeDelta / 180; \n    if(threeMinuteDelta > 0) {\n        for (uint256 i = 0; i < threeMinuteDelta; i++ ){\n        virtualPrice = (virtualPrice * interestPer3Min) / LOAN_SCALE; \n        }\n        collateralBook.vaultUpdateVirtualPriceAndTime(_collateralAddress, virtualPrice, _currentBlockTime);\n    }\n}\n```\n