diff --git a/docs/LidoARMPublicSquashed.svg b/docs/LidoARMPublicSquashed.svg
index db25cb9..05d651d 100644
--- a/docs/LidoARMPublicSquashed.svg
+++ b/docs/LidoARMPublicSquashed.svg
@@ -32,57 +32,57 @@
withdrawsClaimable: uint128 <<AbstractARM>>
nextWithdrawalIndex: uint128 <<AbstractARM>>
withdrawalRequests: mapping(uint256=>WithdrawalRequest) <<AbstractARM>>
- feeCollector: address <<AbstractARM>>
- fee: uint16 <<AbstractARM>>
- feesAccrued: uint112 <<AbstractARM>>
- lastAvailableAssets: uint128 <<AbstractARM>>
- liquidityProviderController: address <<AbstractARM>>
- steth: IERC20 <<LidoLiquidityManager>>
- weth: IWETH <<LidoLiquidityManager>>
- withdrawalQueue: IStETHWithdrawal <<LidoLiquidityManager>>
- outstandingEther: uint256 <<LidoLiquidityManager>>
-
-External:
- <<payable>> null() <<LidoLiquidityManager>>
- owner(): address <<Ownable>>
- setOwner(newOwner: address) <<onlyOwner>> <<Ownable>>
- setOperator(newOperator: address) <<onlyOwner>> <<OwnableOperable>>
- swapExactTokensForTokens(inToken: IERC20, outToken: IERC20, amountIn: uint256, amountOutMin: uint256, to: address) <<AbstractARM>>
- swapExactTokensForTokens(amountIn: uint256, amountOutMin: uint256, path: address[], to: address, deadline: uint256): (amounts: uint256[]) <<AbstractARM>>
- swapTokensForExactTokens(inToken: IERC20, outToken: IERC20, amountOut: uint256, amountInMax: uint256, to: address) <<AbstractARM>>
- swapTokensForExactTokens(amountOut: uint256, amountInMax: uint256, path: address[], to: address, deadline: uint256): (amounts: uint256[]) <<AbstractARM>>
- setPrices(buyT1: uint256, sellT1: uint256) <<onlyOperatorOrOwner>> <<AbstractARM>>
- previewDeposit(assets: uint256): (shares: uint256) <<AbstractARM>>
- deposit(assets: uint256): (shares: uint256) <<AbstractARM>>
- previewRedeem(shares: uint256): (assets: uint256) <<AbstractARM>>
- requestRedeem(shares: uint256): (requestId: uint256, assets: uint256) <<AbstractARM>>
- claimRedeem(requestId: uint256): (assets: uint256) <<AbstractARM>>
- setLiquidityProviderController(_liquidityProviderController: address) <<onlyOwner>> <<AbstractARM>>
- setFee(_fee: uint256) <<onlyOwner>> <<AbstractARM>>
- setFeeCollector(_feeCollector: address) <<onlyOwner>> <<AbstractARM>>
- collectFees(): (fees: uint256) <<AbstractARM>>
- requestStETHWithdrawalForETH(amounts: uint256[]): (requestIds: uint256[]) <<onlyOperatorOrOwner>> <<LidoLiquidityManager>>
- claimStETHWithdrawalForWETH(requestIds: uint256[]) <<onlyOperatorOrOwner>> <<LidoLiquidityManager>>
- initialize(_name: string, _symbol: string, _operator: address, _fee: uint256, _feeCollector: address, _liquidityProviderController: address) <<initializer>> <<LidoARM>>
-Public:
- <<event>> AdminChanged(previousAdmin: address, newAdmin: address) <<Ownable>>
- <<event>> OperatorChanged(newAdmin: address) <<OwnableOperable>>
- <<event>> TraderateChanged(traderate0: uint256, traderate1: uint256) <<AbstractARM>>
- <<event>> Deposit(owner: address, assets: uint256, shares: uint256) <<AbstractARM>>
- <<event>> RedeemRequested(withdrawer: address, requestId: uint256, assets: uint256, queued: uint256, claimTimestamp: uint256) <<AbstractARM>>
- <<event>> RedeemClaimed(withdrawer: address, requestId: uint256, assets: uint256) <<AbstractARM>>
- <<event>> FeeCalculated(newFeesAccrued: uint256, assetIncrease: uint256) <<AbstractARM>>
- <<event>> FeeCollected(feeCollector: address, fee: uint256) <<AbstractARM>>
- <<event>> FeeUpdated(fee: uint256) <<AbstractARM>>
- <<event>> FeeCollectorUpdated(newFeeCollector: address) <<AbstractARM>>
- <<event>> LiquidityProviderControllerUpdated(liquidityProviderController: address) <<AbstractARM>>
- <<modifier>> onlyOwner() <<Ownable>>
- <<modifier>> onlyOperatorOrOwner() <<OwnableOperable>>
- constructor() <<Ownable>>
- constructor(_steth: address, _weth: address, _lidoWithdrawalQueue: address) <<LidoARM>>
- totalAssets(): uint256 <<AbstractARM>>
- convertToShares(assets: uint256): (shares: uint256) <<AbstractARM>>
- convertToAssets(shares: uint256): (assets: uint256) <<AbstractARM>>
+ fee: uint16 <<AbstractARM>>
+ lastAvailableAssets: int128 <<AbstractARM>>
+ feeCollector: address <<AbstractARM>>
+ liquidityProviderController: address <<AbstractARM>>
+ steth: IERC20 <<LidoLiquidityManager>>
+ weth: IWETH <<LidoLiquidityManager>>
+ withdrawalQueue: IStETHWithdrawal <<LidoLiquidityManager>>
+ outstandingEther: uint256 <<LidoLiquidityManager>>
+
+External:
+ <<payable>> null() <<LidoLiquidityManager>>
+ owner(): address <<Ownable>>
+ setOwner(newOwner: address) <<onlyOwner>> <<Ownable>>
+ setOperator(newOperator: address) <<onlyOwner>> <<OwnableOperable>>
+ swapExactTokensForTokens(inToken: IERC20, outToken: IERC20, amountIn: uint256, amountOutMin: uint256, to: address) <<AbstractARM>>
+ swapExactTokensForTokens(amountIn: uint256, amountOutMin: uint256, path: address[], to: address, deadline: uint256): (amounts: uint256[]) <<AbstractARM>>
+ swapTokensForExactTokens(inToken: IERC20, outToken: IERC20, amountOut: uint256, amountInMax: uint256, to: address) <<AbstractARM>>
+ swapTokensForExactTokens(amountOut: uint256, amountInMax: uint256, path: address[], to: address, deadline: uint256): (amounts: uint256[]) <<AbstractARM>>
+ setPrices(buyT1: uint256, sellT1: uint256) <<onlyOperatorOrOwner>> <<AbstractARM>>
+ previewDeposit(assets: uint256): (shares: uint256) <<AbstractARM>>
+ deposit(assets: uint256): (shares: uint256) <<AbstractARM>>
+ previewRedeem(shares: uint256): (assets: uint256) <<AbstractARM>>
+ requestRedeem(shares: uint256): (requestId: uint256, assets: uint256) <<AbstractARM>>
+ claimRedeem(requestId: uint256): (assets: uint256) <<AbstractARM>>
+ setLiquidityProviderController(_liquidityProviderController: address) <<onlyOwner>> <<AbstractARM>>
+ setFee(_fee: uint256) <<onlyOwner>> <<AbstractARM>>
+ setFeeCollector(_feeCollector: address) <<onlyOwner>> <<AbstractARM>>
+ requestStETHWithdrawalForETH(amounts: uint256[]): (requestIds: uint256[]) <<onlyOperatorOrOwner>> <<LidoLiquidityManager>>
+ claimStETHWithdrawalForWETH(requestIds: uint256[]) <<onlyOperatorOrOwner>> <<LidoLiquidityManager>>
+ initialize(_name: string, _symbol: string, _operator: address, _fee: uint256, _feeCollector: address, _liquidityProviderController: address) <<initializer>> <<LidoARM>>
+Public:
+ <<event>> AdminChanged(previousAdmin: address, newAdmin: address) <<Ownable>>
+ <<event>> OperatorChanged(newAdmin: address) <<OwnableOperable>>
+ <<event>> TraderateChanged(traderate0: uint256, traderate1: uint256) <<AbstractARM>>
+ <<event>> Deposit(owner: address, assets: uint256, shares: uint256) <<AbstractARM>>
+ <<event>> RedeemRequested(withdrawer: address, requestId: uint256, assets: uint256, queued: uint256, claimTimestamp: uint256) <<AbstractARM>>
+ <<event>> RedeemClaimed(withdrawer: address, requestId: uint256, assets: uint256) <<AbstractARM>>
+ <<event>> FeeCollected(feeCollector: address, fee: uint256) <<AbstractARM>>
+ <<event>> FeeUpdated(fee: uint256) <<AbstractARM>>
+ <<event>> FeeCollectorUpdated(newFeeCollector: address) <<AbstractARM>>
+ <<event>> LiquidityProviderControllerUpdated(liquidityProviderController: address) <<AbstractARM>>
+ <<modifier>> onlyOwner() <<Ownable>>
+ <<modifier>> onlyOperatorOrOwner() <<OwnableOperable>>
+ constructor() <<Ownable>>
+ constructor(_steth: address, _weth: address, _lidoWithdrawalQueue: address) <<LidoARM>>
+ totalAssets(): uint256 <<AbstractARM>>
+ convertToShares(assets: uint256): (shares: uint256) <<AbstractARM>>
+ convertToAssets(shares: uint256): (assets: uint256) <<AbstractARM>>
+ collectFees(): (fees: uint256) <<AbstractARM>>
+ feesAccrued(): (fees: uint256) <<AbstractARM>>
+ _feesAccrued(): (fees: uint256, newAvailableAssets: uint256) <<AbstractARM>>
diff --git a/docs/LidoARMSquashed.svg b/docs/LidoARMSquashed.svg
index 1a2c8bf..eedba41 100644
--- a/docs/LidoARMSquashed.svg
+++ b/docs/LidoARMSquashed.svg
@@ -4,46 +4,45 @@
-