  /// @dev Function to move rewards that are not protected
  /// @notice Only not protected, moves the whole amount using _handleRewardTransfer
  /// @notice because token paths are hardcoded, this function is safe to be called by anyone
  /// @notice Will not notify the BRIBES_PROCESSOR as this could be triggered outside bribes
  function sweepRewardToken(address token) public nonReentrant {
      _onlyGovernanceOrStrategist();
      _onlyNotProtectedTokens(token);

      uint256 toSend = IERC20Upgradeable(token).balanceOf(address(this));
      _handleRewardTransfer(token, toSend);
  }

  function _handleRewardTransfer(address token, uint256 amount) internal {
      // NOTE: BADGER is emitted through the tree
      if (token == BADGER) {
          _sendBadgerToTree(amount);
      } else {
          // NOTE: All other tokens are sent to bribes processor
          _sendTokenToBribesProcessor(token, amount);
      }
  }

  function _sendTokenToBribesProcessor(address token, uint256 amount) internal {
      // TODO: Too many SLOADs
      IERC20Upgradeable(token).safeTransfer(address(bribesProcessor), amount);
      emit RewardsCollected(token, amount);
  }
