void RemoveGroup(MadLevelConfiguration.Group group) {
        if (group == configuration.defaultGroup) {
            Debug.LogError("Cannot remove default group");
            return;
        }
        
        bool removeLevels = false;
        
        if (group.GetLevels().Count > 0) {
            if (EditorUtility.DisplayDialog("Remove Levels As Well?",
                "Do you want to remove all levels in this group as well? "
                + "If no, all levels will be moved to default group.", "Yes", "No")) {
                removeLevels = true;
            }
        }
        
        MadUndo.RecordObject2(configuration, "Remove Group");
        
        if (currentGroup == group) {
            currentGroup = configuration.defaultGroup;
        }

        if (removeLevels) {        
            var levels = group.GetLevels();
            configuration.levels.RemoveAll((level) => levels.Contains(level));
        }
        
        configuration.RemoveGroup(group);
    }