interface ITreasury {
    /**
    * @dev Assign a certain amount of tokens to an account
    * @param _token ERC20 token to be assigned
    * @param _to Address of the recipient that will be assigned the tokens to
    * @param _amount Amount of tokens to be assigned to the recipient
    */
    function assign(ERC20 _token, address _to, uint256 _amount) external;

    /**
    * @dev Withdraw a certain amount of tokens
    * @param _token ERC20 token to be withdrawn
    * @param _to Address of the recipient that will receive the tokens
    * @param _amount Amount of tokens to be withdrawn from the sender
    */
    function withdraw(ERC20 _token, address _to, uint256 _amount) external;
}
function withdraw(ERC20 _token, address _to, uint256 _amount) external;

/**
 * @dev Withdraw a certain amount of tokens
 * @param _token ERC20 token to be withdrawn
 * @param _to Address of the recipient that will receive the tokens
 * @param _amount Amount of tokens to be withdrawn from the sender
 */