function invest(bytes6 _ownerCode, bytes6 _inviterCode) public payable beUsable {
    require(msg.value == investAmount);
    require(ownerToInviteCode[msg.sender] == 0);

    
    require(_ownerCode != 0x73797374656d && inviteCodeToIndex[_ownerCode] == 0);
    require(_inviterCode != 0x73797374656d && inviteCodeToIndex[_inviterCode] != 0);

    _sendOperationCommission();

    address inviter = investors[inviteCodeToIndex[_inviterCode]].owner;
    _createInvestor(msg.sender, _ownerCode, inviter, _inviterCode);

    _updateInviterInfo(_inviterCode);
    
    _rebateToInviter(_inviterCode);
    
    _updateNewcomer(inviter);

    _updateRecomm(inviter);

    _inviterMining();
  }