diff --git a/toolkit.py b/toolkit.py
index 19fa5ec41441b4bdf19df57db4561b7bb038f483..e0504e5d077d8415705f5a7a506c3b9aa59114ed 100755
--- a/toolkit.py
+++ b/toolkit.py
@@ -411,19 +411,23 @@ class ClassificationProject(object):
             # the first block will be signals, the second block backgrounds
             self.x_train = rec2array(self.s_train[self.fields])
             self.x_train = np.concatenate((self.x_train, rec2array(self.b_train[self.fields])))
-            self.x_test = rec2array(self.s_test[self.fields])
-            self.x_test = np.concatenate((self.x_test, rec2array(self.b_test[self.fields])))
             self.w_train = self.s_train[self.weight_expr]
             self.w_train = np.concatenate((self.w_train, self.b_train[self.weight_expr]))
-            self.w_test = self.s_test[self.weight_expr]
-            self.w_test = np.concatenate((self.w_test, self.b_test[self.weight_expr]))
-
-            self.y_train = np.empty(len(self.x_train))
+            self.y_train = np.empty(len(self.x_train), dtype=np.bool)
             self.y_train[:len(self.s_train)] = 1
             self.y_train[len(self.s_train):] = 0
-            self.y_test = np.empty(len(self.x_test))
+            self.b_train = None
+            self.s_train = None
+
+            self.x_test = rec2array(self.s_test[self.fields])
+            self.x_test = np.concatenate((self.x_test, rec2array(self.b_test[self.fields])))
+            self.w_test = self.s_test[self.weight_expr]
+            self.w_test = np.concatenate((self.w_test, self.b_test[self.weight_expr]))
+            self.y_test = np.empty(len(self.x_test), dtype=np.bool)
             self.y_test[:len(self.s_test)] = 1
             self.y_test[len(self.s_test):] = 0
+            self.b_test = None
+            self.s_test = None
 
             self._dump_to_hdf5(*self.dataset_names_tree)