diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/BoostUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/BoostUtils.py
index d63dd748e940dd1bb5e788aeb127f405a2c3227c..c9841ab004e9f9488d83212f07f3c5219230a237 100644
--- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/BoostUtils.py
+++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/BoostUtils.py
@@ -191,13 +191,16 @@ class ClassifiersGenerator(BaseEstimator, TransformerMixin):
 
 class TreeClassifiersGenerator(ClassifiersGenerator):
 
-    def __init__(self, random_state, max_depth=2, self_complemented=True, criterion="gini", splitter="best", n_trees=100, distribution_type="uniform", low=0, high=10, attributes_ratio=0.6, examples_ratio=0.95):
+    def __init__(self, random_state=42, max_depth=2, self_complemented=True, criterion="gini", splitter="best", n_trees=100, distribution_type="uniform", low=0, high=10, attributes_ratio=0.6, examples_ratio=0.95):
         super(TreeClassifiersGenerator, self).__init__(self_complemented)
         self.max_depth=max_depth
         self.criterion=criterion
         self.splitter=splitter
         self.n_trees=n_trees
-        self.random_state=random_state
+        if type(random_state) is int:
+            self.random_state = np.random.RandomState(random_state)
+        else:
+            self.random_state=random_state
         self.distribution_type = distribution_type
         self.low = low
         self.high = high
@@ -208,6 +211,7 @@ class TreeClassifiersGenerator(ClassifiersGenerator):
         estimators_ = []
         self.attribute_indices = [self.sub_sample_attributes(X) for _ in range(self.n_trees)]
         self.example_indices = [self.sub_sample_examples(X) for _ in range(self.n_trees)]
+        print(self.example_indices)
         for i in range(self.n_trees):
             estimators_.append(DecisionTreeClassifier(criterion=self.criterion, splitter=self.splitter, max_depth=self.max_depth).fit(X[:, self.attribute_indices[i]][self.example_indices[i], :], y[self.example_indices[i]]))
         self.estimators_ = np.asarray(estimators_)
diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CGDescUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CGDescUtils.py
index 9aff7ca3ef37352931ffbaf2c34ea3eb4a96b23b..becea21844e51906de7dba2915c35cfbfc898135 100644
--- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CGDescUtils.py
+++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CGDescUtils.py
@@ -333,7 +333,7 @@ class ColumnGenerationClassifierQar(BaseEstimator, ClassifierMixin, BaseBoost):
                 n_stumps_per_attribute=self.n_stumps,
                 self_complemented=self.self_complemented)
         if self.estimators_generator is "Trees":
-            self.estimators_generator = TreeClassifiersGenerator(self.random_state, n_trees=self.n_stumps, max_depth=self.max_depth,
+            self.estimators_generator = TreeClassifiersGenerator(n_trees=self.n_stumps, max_depth=self.max_depth,
                 self_complemented=self.self_complemented)
         self.estimators_generator.fit(X, y)
         self.classification_matrix = self._binary_classification_matrix(X)
diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py
index 13c270ca1dfff385cd7e27347952c1b04dc82705..bf367423ab658215486431b322ca7a7a0a7ac297 100644
--- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py
+++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/CQBoostUtils.py
@@ -26,7 +26,6 @@ class ColumnGenerationClassifier(BaseEstimator, ClassifierMixin, BaseBoost):
         self.random_state = random_state
 
     def fit(self, X, y):
-        start = time.time()
         if scipy.sparse.issparse(X):
             X = np.array(X.todense())
 
@@ -35,8 +34,9 @@ class ColumnGenerationClassifier(BaseEstimator, ClassifierMixin, BaseBoost):
         if self.estimators_generator is "Stumps":
             self.estimators_generator = StumpsClassifiersGenerator(n_stumps_per_attribute=self.n_stumps, self_complemented=True)
         elif self.estimators_generator is "Trees":
-            self.estimators_generator = TreeClassifiersGenerator( self.random_state, max_depth=self.max_depth, n_trees=self.n_stumps, self_complemented=True)
+            self.estimators_generator = TreeClassifiersGenerator(max_depth=self.max_depth, n_trees=self.n_stumps, self_complemented=True)
 
+        print(self.max_depth, self.n_stumps)
         self.estimators_generator.fit(X, y)
         self.classification_matrix = self._binary_classification_matrix(X)
         self.c_bounds = []
@@ -63,6 +63,7 @@ class ColumnGenerationClassifier(BaseEstimator, ClassifierMixin, BaseBoost):
         w= None
         self.collected_weight_vectors_ = {}
         self.collected_dual_constraint_violations_ = {}
+        start = time.time()
 
         for k in range(min(n, self.n_max_iterations if self.n_max_iterations is not None else np.inf)):
             # Find worst weak hypothesis given alpha.
diff --git a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/PregenUtils.py b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/PregenUtils.py
index 7bcf42813c953881ecfe9549c98a1b6ec96f0cf9..92a603e8d98c8759f77209925f12cf49deb8fe34 100644
--- a/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/PregenUtils.py
+++ b/multiview_platform/MonoMultiViewClassifiers/Monoview/Additions/PregenUtils.py
@@ -13,7 +13,7 @@ class PregenClassifier(BaseBoost):
                     n_stumps_per_attribute=self.n_stumps,
                     self_complemented=self.self_complemented)
             elif generator is "Trees":
-                self.estimators_generator = TreeClassifiersGenerator(self.random_state, n_trees=self.n_stumps, max_depth=self.max_depth)
+                self.estimators_generator = TreeClassifiersGenerator(n_trees=self.n_stumps, max_depth=self.max_depth)
             self.estimators_generator.fit(X, neg_y)
         else:
             neg_y=None
diff --git a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/MinCQGraalpyTree.py b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/MinCQGraalpyTree.py
index 4376f73b12e4dac3e5c2ceb1a19f92a9997e25e9..d5907d69ec3e6ecb9ec2b2be5dbf7d938d8fb887 100644
--- a/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/MinCQGraalpyTree.py
+++ b/multiview_platform/MonoMultiViewClassifiers/MonoviewClassifiers/MinCQGraalpyTree.py
@@ -10,8 +10,7 @@ class MinCQGraalpyTree(RegularizedBinaryMinCqClassifier, BaseMonoviewClassifier)
 
     def __init__(self, random_state=None, mu=0.01, self_complemented=True, n_stumps_per_attribute=1, max_depth=2, **kwargs):
         super(MinCQGraalpyTree, self).__init__(mu=mu,
-            estimators_generator=TreeClassifiersGenerator(random_state=random_state,
-                                                          n_trees=n_stumps_per_attribute,
+            estimators_generator=TreeClassifiersGenerator(n_trees=n_stumps_per_attribute,
                                                           max_depth=max_depth,
                                                           self_complemented=self_complemented),
         )