function transferToContract(address _to, uint _value, bytes _data) private returns (bool success) {
      require(beingEdited[_to] != true && beingEdited[msg.sender] != true);
      require (balanceOf(msg.sender) >= _value);
      setEditedTrue(_to);
      setEditedTrue(msg.sender);
      balances[msg.sender] = SafeMath.sub(balanceOf(msg.sender), _value);
      balances[_to] = SafeMath.add(balanceOf(_to), _value);
      ContractReceiver receiver = ContractReceiver(_to);
      receiver.tokenFallback(msg.sender, _value, _data);
      emit Transfer(msg.sender, _to, _value, _data);
      setEditedFalse(_to);
      setEditedFalse(msg.sender);
      updateAddresses(_to);
      updateAddresses(msg.sender);
      return true;
  }