diff --git a/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py b/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py
index 6519874e25f81d98d4aaa9cc9534b5b8d28ef623..ca34a476f67201173e31b0f76eba6739d8a950f9 100644
--- a/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py
+++ b/multiview_platform/MonoMultiViewClassifiers/ExecClassif.py
@@ -67,16 +67,16 @@ def initBenchmark(args):
     return benchmark
 
 
-def genViewsDictionnary(DATASET):
+def genViewsDictionnary(DATASET, views):
     datasetsNames = DATASET.keys()
     viewsDictionary = {}
     for datasetName in datasetsNames:
         if datasetName[:4]=="View":
             viewName = DATASET.get(datasetName).attrs["name"]
-            if type(viewName)!=bytes:
+            if type(viewName)==bytes:
+                viewName = viewName.decode("utf-8")
+            if viewName in views:
                 viewsDictionary[viewName] = int(datasetName[4:])
-            else:
-                viewsDictionary[viewName.decode("utf-8")] = int(datasetName[4:])
 
     return viewsDictionary
 
@@ -120,6 +120,7 @@ def initMultiviewArguments(args, benchmark, views, viewsIndices, argumentDiction
         for multiviewAlgoName in benchmark["Multiview"]:
             multiviewPackage = getattr(MultiviewClassifiers, multiviewAlgoName)
             mutliviewModule = getattr(multiviewPackage, multiviewAlgoName+"Module")
+
             multiviewArguments += mutliviewModule.getArgs(args, benchmark, views, viewsIndices, randomState, directory,
                                                           resultsMonoview, classificationIndices)
     argumentDictionaries["Multiview"] = multiviewArguments
@@ -179,7 +180,6 @@ def execOneBenchmark(coreIndex=-1, LABELS_DICTIONARY=None, directory=None, class
 
     resultsMonoview, labelsNames = benchmarkInit(directory, classificationIndices, labels, LABELS_DICTIONARY, kFolds)
 
-
     logging.debug("Start:\t Monoview benchmark")
     resultsMonoview += [ExecMonoview_multicore(directory, args.name, labelsNames, classificationIndices, kFolds,
                                                coreIndex, args.type, args.pathF, randomState, labels,
@@ -261,12 +261,12 @@ def execOneBenchmarkMonoCore(DATASET=None, LABELS_DICTIONARY=None, directory=Non
     logging.debug("Start:\t Monoview benchmark")
     for arguments in argumentDictionaries["Monoview"]:
         kwargs = arguments["args"]
-        views = [DATASET.get("View" + str(viewIndex)).attrs["name"]
-                 if type(DATASET.get("View" + str(viewIndex)).attrs["name"])!=bytes
-                 else DATASET.get("View" + str(viewIndex)).attrs["name"].decode("utf-8")
-                 for viewIndex in range(DATASET.get("Metadata").attrs["nbView"])]
-        neededViewIndex = views.index(kwargs["feat"])
-        X = DATASET.get("View" + str(neededViewIndex))
+        #views = [DATASET.get("View" + str(viewIndex)).attrs["name"]
+        #         if type(DATASET.get("View" + str(viewIndex)).attrs["name"])!=bytes
+        #         else DATASET.get("View" + str(viewIndex)).attrs["name"].decode("utf-8")
+        #         for viewIndex in range(DATASET.get("Metadata").attrs["nbView"])]
+        #neededViewIndex = views.index(kwargs["feat"])
+        X = DATASET.get(kwargs["feat"])
         Y = labels
         resultsMonoview += [ExecMonoview(directory, X, Y, args.name, labelsNames, classificationIndices, kFolds,
                                                    1, args.type, args.pathF, randomState,
@@ -275,6 +275,7 @@ def execOneBenchmarkMonoCore(DATASET=None, LABELS_DICTIONARY=None, directory=Non
     logging.debug("Done:\t Monoview benchmark")
 
     logging.debug("Start:\t Multiview arguments initialization")
+
     argumentDictionaries = initMultiviewArguments(args, benchmark, views, viewsIndices, argumentDictionaries,
                                                   randomState, directory, resultsMonoview, classificationIndices)
     logging.debug("Done:\t Multiview arguments initialization")
@@ -361,14 +362,13 @@ def execClassif(arguments):
 
     # if not views:
     #     raise ValueError("Empty views list, modify selected views to match dataset " + args.views)
-    viewsDictionary = genViewsDictionnary(DATASET)
 
-    nbViews = DATASET.get("Metadata").attrs["nbView"]
 
-    views = [DATASET.get("View"+str(viewIndex)).attrs["name"]
-             if type(DATASET.get("View"+str(viewIndex)).attrs["name"])!=bytes
-             else DATASET.get("View"+str(viewIndex)).attrs["name"].decode("utf-8")
-             for viewIndex in range(nbViews)]
+    # nbViews = DATASET.get("Metadata").attrs["nbView"]
+
+    views, viewsIndices, allViews = execution.initViews(DATASET, args)
+    viewsDictionary = genViewsDictionnary(DATASET, views)
+    nbViews = len(views)
     NB_CLASS = DATASET.get("Metadata").attrs["nbClass"]
 
     metrics = [metric.split(":") for metric in args.CL_metrics]
@@ -397,7 +397,7 @@ def execClassif(arguments):
                                                                       labelsCombinations, indicesMulticlass,
                                                                       hyperParamSearch, args, kFolds,
                                                                       statsIterRandomStates, metrics,
-                                                                      argumentDictionaries, benchmark, nbViews, views)
+                                                                      argumentDictionaries, benchmark, nbViews, views, viewsIndices)
 
     nbMulticlass = len(labelsCombinations)
 
diff --git a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/FatLateFusion/FatLateFusionModule.py b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/FatLateFusion/FatLateFusionModule.py
index 57c8fa3636eda4a0e3e7de3229add48ed8f6cff4..e2b886c16b9d8f1e69684f928dd07328490cab76 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/FatLateFusion/FatLateFusionModule.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/FatLateFusion/FatLateFusionModule.py
@@ -20,7 +20,7 @@ def getArgs(args, benchmark, views, viewsIndices, randomState, directory, result
     else:
         monoviewDecisions = np.array([genMulticlassMonoviewDecision(monoviewResult, classificationIndices) for monoviewResult in resultsMonoview])
     arguments = {"CL_type": "FatLateFusion",
-                 "views": ["all"],
+                 "views": views,
                  "NB_VIEW": len(resultsMonoview),
                  "viewsIndices": range(len(resultsMonoview)),
                  "NB_CLASS": len(args.CL_classes),
@@ -38,7 +38,7 @@ def genParamsSets(classificationKWARGS, randomState, nIter=1):
     """Used to generate parameters sets for the random hyper parameters optimization function"""
     nbMonoviewClassifiers = len(classificationKWARGS["monoviewDecisions"])
     weights = [randomState.random_sample(nbMonoviewClassifiers) for _ in range(nIter)]
-    nomralizedWeights = [[weightVector/np.sum(weightVector)] for weightVector in weights] 
+    nomralizedWeights = [[weightVector/np.sum(weightVector)] for weightVector in weights]
     return nomralizedWeights
 
 
diff --git a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusion.py b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusion.py
index 71f4a80a246c91c4918f6c0089300d1ef47f0e05..15372bf5e5967a3ace229e529a4be65417f4b16b 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusion.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusion.py
@@ -51,13 +51,13 @@ def intersect(allClassifersNames, directory, viewsIndices, resultsMonoview, clas
     trainLabels = np.genfromtxt(directory + "train_labels.csv", delimiter=",").astype(np.int16)
     length = len(trainLabels)
     for resultMonoview in resultsMonoview:
-        if resultMonoview[1][0] in classifiersNames[resultMonoview[0]]:
+        if resultMonoview[1][0] in classifiersNames[viewsIndices.index(resultMonoview[0])]:
             classifierIndex = classifiersNames.index(resultMonoview[1][0])
             wrongSets[resultMonoview[0]][classifierIndex] = np.where(
                 trainLabels + resultMonoview[1][3][classificationIndices[0]] == 1)[0]
         else:
-            classifiersNames[resultMonoview[0]].append(resultMonoview[1][0])
-            wrongSets[resultMonoview[0]].append(
+            classifiersNames[viewsIndices.index(resultMonoview[0])].append(resultMonoview[1][0])
+            wrongSets[viewsIndices.index(resultMonoview[0])].append(
                 np.where(trainLabels + resultMonoview[1][3][classificationIndices[0]] == 1)[0])
 
     combinations = itertools.combinations_with_replacement(range(len(classifiersNames[0])), nbViews)
@@ -106,12 +106,12 @@ def getClassifiers(selectionMethodName, allClassifiersNames, directory, viewsInd
     return classifiersNames
 
 
-def getConfig(classifiersNames, resultsMonoview):
+def getConfig(classifiersNames, resultsMonoview, viewsIndices):
     classifiersConfigs = [0 for _ in range(len(classifiersNames))]
-    for viewIndex, classifierName in enumerate(classifiersNames):
+    for classifierIndex, classifierName in enumerate(classifiersNames):
         for resultMonoview in resultsMonoview:
-            if resultMonoview[0] == viewIndex and resultMonoview[1][0] == classifierName:
-                classifiersConfigs[viewIndex] = resultMonoview[1][4]
+            if resultMonoview[0] == viewsIndices[classifierIndex] and resultMonoview[1][0] == classifierName:
+                classifiersConfigs[classifierIndex] = resultMonoview[1][4]
     return classifiersConfigs
 
 
@@ -135,7 +135,6 @@ class LateFusionClassifier(object):
             viewsIndices = np.arange(DATASET.get("Metadata").attrs["nbView"])
         if trainIndices is None:
             trainIndices = range(DATASET.get("Metadata").attrs["datasetLength"])
-
         self.monoviewClassifiers = Parallel(n_jobs=self.nbCores)(
                 delayed(fitMonoviewClassifier)(self.monoviewClassifiersNames[index],
                                                getV(DATASET, viewIndex, trainIndices),
diff --git a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/BayesianInference.py b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/BayesianInference.py
index a040afb2af2bef4b1c87710519e1c1894fff18df..1eade801dd230db22d39f6016fcffad8addfacce 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/BayesianInference.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/BayesianInference.py
@@ -35,7 +35,7 @@ def getArgs(benchmark, args, views, viewsIndices, directory, resultsMonoview, cl
             for monoviewClassifierModule, classifierConfig
             in zip(monoviewClassifierModules, args.FU_L_cl_config)]
     else:
-        classifiersConfigs = getConfig(args.FU_L_cl_names, resultsMonoview)
+        classifiersConfigs = getConfig(args.FU_L_cl_names, resultsMonoview, viewsIndices)
     arguments = {"CL_type": "Fusion",
                  "views": views,
                  "NB_VIEW": len(views),
@@ -57,7 +57,6 @@ class BayesianInference(LateFusionClassifier):
         LateFusionClassifier.__init__(self, randomState, kwargs['classifiersNames'], kwargs['classifiersConfigs'],
                                       kwargs["monoviewSelection"],
                                       NB_CORES=NB_CORES)
-
         if kwargs['fusionMethodConfig'][0] is None or kwargs['fusionMethodConfig'] == ['']:
             self.weights = np.array([1.0 for _ in kwargs['classifiersNames']])
         else:
diff --git a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/MajorityVoting.py b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/MajorityVoting.py
index 6b0b06926b8305f95734cb1e72e513442475b026..33b5c2fb1f1c76d74b41f1f141c53119a9a9c270 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/MajorityVoting.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/MajorityVoting.py
@@ -35,7 +35,7 @@ def getArgs(benchmark, args, views, viewsIndices, directory, resultsMonoview, cl
             for monoviewClassifierModule, classifierConfig
             in zip(monoviewClassifierModules, args.FU_L_cl_config)]
     else:
-        classifiersConfigs = getConfig(args.FU_L_cl_names, resultsMonoview)
+        classifiersConfigs = getConfig(args.FU_L_cl_names, resultsMonoview, viewsIndices)
     arguments = {"CL_type": "Fusion",
                  "views": views,
                  "NB_VIEW": len(views),
diff --git a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/SCMForLinear.py b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/SCMForLinear.py
index 623e58ac05ed063d3a47147073474e1ed40ed86e..8e70b8f30b96a1d699b3ee01f42eb7f7f4556851 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/SCMForLinear.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/SCMForLinear.py
@@ -73,7 +73,7 @@ def getArgs(benchmark, args, views, viewsIndices, directory, resultsMonoview, cl
             for monoviewClassifierModule, classifierConfig
             in zip(monoviewClassifierModules, args.FU_L_cl_config)]
     else:
-        classifiersConfigs = getConfig(args.FU_L_cl_names, resultsMonoview)
+        classifiersConfigs = getConfig(args.FU_L_cl_names, resultsMonoview, viewsIndices)
     arguments = {"CL_type": "Fusion",
                  "views": views,
                  "NB_VIEW": len(views),
@@ -188,4 +188,4 @@ class SCMForLinear(LateFusionClassifier):
                                                                     monoviewClassifiersNames):
             monoviewClassifierModule = getattr(MonoviewClassifiers, monoviewClassifierName)
             configString += monoviewClassifierModule.getConfig(monoviewClassifierConfig)
-        return configString
\ No newline at end of file
+        return configString
diff --git a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/SVMForLinear.py b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/SVMForLinear.py
index e574d7547cf3c9a35fd83fdc0d401a63a8d71321..ce24271704664a96f3c4009a4073f496d601115a 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/SVMForLinear.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/SVMForLinear.py
@@ -33,7 +33,7 @@ def getArgs(benchmark, args, views, viewsIndices, directory, resultsMonoview, cl
             for monoviewClassifierModule, classifierConfig
             in zip(monoviewClassifierModules, args.FU_L_cl_config)]
     else:
-        classifiersConfigs = getConfig(args.FU_L_cl_names, resultsMonoview)
+        classifiersConfigs = getConfig(args.FU_L_cl_names, resultsMonoview, viewsIndices)
     arguments = {"CL_type": "Fusion",
                  "views": views,
                  "NB_VIEW": len(views),
diff --git a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/WeightedLinear.py b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/WeightedLinear.py
index 44783efd4fd4698b45c22079e2722f81523511c4..db86de2e95ac25b0c80c6e0d6bea991967f0c5b8 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/WeightedLinear.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/Fusion/Methods/LateFusionPackage/WeightedLinear.py
@@ -35,7 +35,7 @@ def getArgs(benchmark, args, views, viewsIndices, directory, resultsMonoview, cl
             for monoviewClassifierModule, classifierConfig
             in zip(monoviewClassifierModules, args.FU_L_cl_config)]
     else:
-        classifiersConfigs = getConfig(args.FU_L_cl_names, resultsMonoview)
+        classifiersConfigs = getConfig(args.FU_L_cl_names, resultsMonoview, viewsIndices)
     arguments = {"CL_type": "Fusion",
                  "views": views,
                  "NB_VIEW": len(views),
diff --git a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/diversity_utils.py b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/diversity_utils.py
index c02a6f8b0bcc8bf0cdefc062a8b8114a64709d40..a7ddc7e77f5d7070cb403e949d0d7c9ff5d3b47c 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/diversity_utils.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MultiviewClassifiers/diversity_utils.py
@@ -238,4 +238,3 @@ class DiversityFusionClass:
     def getSpecificAnalysis(self, classificationKWARGS):
         stringAnalysis = "Classifiers used for each view : " + ', '.join(self.classifiersNames)
         return stringAnalysis
-
diff --git a/multiview_platform/MonoMultiViewClassifiers/utils/execution.py b/multiview_platform/MonoMultiViewClassifiers/utils/execution.py
index ad9573678ed7fe6ee8bedcefc449481fc79c793a..18770b47e4b74b991a2678e073e5d353f836fc62 100644
--- a/multiview_platform/MonoMultiViewClassifiers/utils/execution.py
+++ b/multiview_platform/MonoMultiViewClassifiers/utils/execution.py
@@ -327,13 +327,15 @@ def initViews(DATASET, args):
             if type(viewName) == bytes:
                 viewName = viewName.decode("utf-8")
             if viewName in allowedViews:
+                viewIndex = int(viewName[4:])
                 views.append(viewName)
-                viewsIndices.append(viewsIndices)
-        print(views)
-        quit()
+                viewsIndices.append(viewIndex)
         return views, viewsIndices, allViews
     else:
-        views = [str(DATASET.get("View" + str(viewIndex)).attrs["name"]) for viewIndex in range(NB_VIEW)]
+        views = [str(DATASET.get("View" + str(viewIndex)).attrs["name"])
+                if type(DATASET.get("View" + str(viewIndex)).attrs["name"])!=bytes
+                else DATASET.get("View" + str(viewIndex)).attrs["name"].decode("utf-8")
+                for viewIndex in range(NB_VIEW)]
         viewsIndices = np.arange(NB_VIEW)
         allViews = views
         return views, viewsIndices, allViews
@@ -351,7 +353,7 @@ def genDirecortiesNames(directory, statsIter):
 
 
 def genArgumentDictionaries(labelsDictionary, directories, multiclassLabels, labelsCombinations, indicesMulticlass, hyperParamSearch, args,
-                            kFolds, statsIterRandomStates, metrics, argumentDictionaries, benchmark, nbViews, views):
+                            kFolds, statsIterRandomStates, metrics, argumentDictionaries, benchmark, nbViews, views, viewsIndices):
     benchmarkArgumentDictionaries = []
     for combinationIndex, labelsCombination in enumerate(labelsCombinations):
         for iterIndex, iterRandomState in enumerate(statsIterRandomStates):
@@ -373,7 +375,7 @@ def genArgumentDictionaries(labelsDictionary, directories, multiclassLabels, lab
                                            "argumentDictionaries": argumentDictionaries,
                                            "benchmark": benchmark,
                                            "views": views,
-                                           "viewsIndices": range(nbViews),
+                                           "viewsIndices": viewsIndices,
                                            "flag": [iterIndex, labelsCombination]}
             benchmarkArgumentDictionaries.append(benchmarkArgumentDictionary)
     return benchmarkArgumentDictionaries