```\n    function _distribute(address[] memory, bytes memory, address _sender)\n        internal\n        virtual\n        override\n        onlyInactivePool\n        onlyPoolManager(_sender)\n    {\n        // rest of code\n\n        IAllo.Pool memory pool = allo.getPool(poolId);\n        Milestone storage milestone = milestones[upcomingMilestone];\n        Recipient memory recipient = _recipients[acceptedRecipientId];\n\n        if (recipient.proposalBid > poolAmount) revert NOT_ENOUGH_FUNDS();\n\n        uint256 amount = (recipient.proposalBid * milestone.amountPercentage) / 1e18;\n\n        poolAmount -= amount;//<@@ NOTICE the poolAmount get decrease over time\n\n        _transferAmount(pool.token, recipient.recipientAddress, amount);\n\n        // rest of code\n    }\n```\n