function _update(bytes10 name10, uint updated) private {
        uint16 idx = uint16(updated);
        if (idx == 0xFFFF) {
            uint currentBottom;
            uint bottomIndex;
            (currentBottom, bottomIndex) = bottomName();

            if (updated > currentBottom) {
                
                if (getPart(currentBottom, S_SCORE_POS, S_SCORE_SIZE) > 0) {
                    currentBottom = currentBottom | uint(0xFFFF);
                    bytes10 bottomName10 = bytes10(getPart(currentBottom, S_NAME_POS, S_NAME_SIZE));
                    leaderboard[bottomName10] = currentBottom;
                }
                
                updated = (updated & ~uint(0xFFFF)) | bottomIndex;
                allNames[bottomIndex] = updated;
            }
        } else {
            allNames[idx] = updated;
        }
        leaderboard[name10] = updated;
    }