contract ExchangeHandler is Withdrawable, Pausable {

    /*
    *   State Variables
    */

    /* Logger public logger; */
    /*
    *   Modifiers
    */

    function performOrder(
        bytes memory genericPayload,
        uint256 availableToSpend,
        uint256 targetAmount,
        bool targetAmountIsSource
    )
        public
        payable
        returns (uint256 amountSpentOnOrder, uint256 amountReceivedFromOrder);

}
/// @title Interface for all exchange handler contracts
function performOrder(
    bytes memory genericPayload,
    uint256 availableToSpend,
    uint256 targetAmount,
    bool targetAmountIsSource
)
    public
    payable
    returns (uint256 amountSpentOnOrder, uint256 amountReceivedFromOrder);

/*
 *   Modifiers
 */