function receiveApproval(address _from, uint256 _amount, address _token, bytes _data) 
      public
    {
        require(msg.sender == coinToken || msg.sender == cashToken);

        
        address beneficiary;
        assembly {
            beneficiary := mload(add(_data,36))
        }
        require(_from == beneficiary);
        
        address(this).delegatecall(_data);
        _token; _amount;
    }