function transfer(address _to, uint _value, bytes _data) public {
        
        require(balances[msg.sender] >= _value);

        uint codeLength;

        assembly {
        
            codeLength := extcodesize(_to)
        }

        
        require(codeLength == 0);

        balances[msg.sender] = sub(balanceOf(msg.sender), _value);
        balances[_to] = add(balances[_to], _value);

        Transfer(msg.sender, _to, _value);
    }