diff --git a/mlair/data_handler/abstract_data_handler.py b/mlair/data_handler/abstract_data_handler.py
index 53d4597060f9452e4a59cfa1001da9aaa86056b8..419db059a58beeb4ed7e3e198e41b565f8dc7d25 100644
--- a/mlair/data_handler/abstract_data_handler.py
+++ b/mlair/data_handler/abstract_data_handler.py
@@ -6,7 +6,6 @@ import inspect
 from typing import Union, Dict
 
 from mlair.helpers import remove_items
-import logging
 
 
 class AbstractDataHandler:
@@ -14,7 +13,6 @@ class AbstractDataHandler:
     _requirements = []
 
     def __init__(self, *args, **kwargs):
-        logging.info("Initialise AbstractDataHandler")
         pass
 
     @classmethod
diff --git a/mlair/data_handler/data_handler_single_station.py b/mlair/data_handler/data_handler_single_station.py
index 163a0a7754fc34e61383e99c7bc608d13b9f03f6..9fdba43cc2b6b3f9ed7a6d97dbd43ec86f03a1f7 100644
--- a/mlair/data_handler/data_handler_single_station.py
+++ b/mlair/data_handler/data_handler_single_station.py
@@ -62,7 +62,6 @@ class DataHandlerSingleStation(AbstractDataHandler):
                  overwrite_local_data: bool = False, transformation=None, store_data_locally: bool = True,
                  min_length: int = 0, start=None, end=None, variables=None, data_origin: Dict = None,
                  lazy_preprocessing: bool = False, aggregation_dim=None, **kwargs):
-        logging.info(f"Initialise DataHandlerSingleStation")
         super().__init__()
         self.station = helpers.to_list(station)
         self.path = self.setup_data_path(data_path, sampling)
diff --git a/mlair/data_handler/data_handler_wrf_chem.py b/mlair/data_handler/data_handler_wrf_chem.py
index 69d2cb7fece19d88e0c41af188d0705c237e1a25..a1b7f96966cb15960096941b408fbd886df45749 100644
--- a/mlair/data_handler/data_handler_wrf_chem.py
+++ b/mlair/data_handler/data_handler_wrf_chem.py
@@ -148,10 +148,12 @@ class BaseWrfChemDataLoader:
                 status = 'FAIL'
             print(f'{i}: {filenamestr} {status}')
 
+    @TimeTrackingWrapper
     def get_distances(self, lat, lon):
         dist = haversine_dist(lat1=self._data.XLAT, lon1=self._data.XLONG, lat2=lat, lon2=lon)
         return dist
 
+    @TimeTrackingWrapper
     def get_bearing(self, lat, lon, points_last=True):
         bearing = bearing_angle(lat1=lat, lon1=lon, lat2=self._data.XLAT, lon2=self._data.XLONG)
         if points_last:
@@ -167,6 +169,7 @@ class BaseWrfChemDataLoader:
         else:
             return dist.argmin(dim)
 
+    @TimeTrackingWrapper
     def _set_dims_as_coords(self):
         if self._data is None:
             raise IOError(f'{self.__class__.__name__} can not set dims as coords. Use must use `open_data()` before.')
@@ -174,8 +177,9 @@ class BaseWrfChemDataLoader:
         for k, _ in data.dims.items():
             data = data.assign_coords({k: data[k]})
         self._data = data
-        logging.info('set dimensions as coordinates')
+        # logging.info('set dimensions as coordinates')
 
+    @TimeTrackingWrapper
     def apply_staged_transormation(self, mapping_of_stag2unstag=None):
         if mapping_of_stag2unstag is None:
             mapping_of_stag2unstag = {'U': 'U10', 'V': 'V10', 'U10': 'U10', 'V10': 'V10'}
@@ -216,6 +220,7 @@ class BaseWrfChemDataLoader:
             self._data[u_ll_name] = ull
             self._data[v_ll_name] = vll
 
+    @TimeTrackingWrapper
     def set_interpolated_field(self, staged_field: xr.DataArray, target_field: xr.DataArray,
                                dropped_staged_attrs: List[str] =None, **kwargs):
         stagger_attr_name = kwargs.pop('stagger_attr_name', 'stagger')
@@ -276,6 +281,7 @@ class SingleGridColumnWrfChemDataLoader(BaseWrfChemDataLoader):
         # self._set_geoinfos()
         logging.debug("SingleGridColumnWrfChemDataLoader Initialised")
 
+    @TimeTrackingWrapper
     def __enter__(self):
         self.open_data()
 
@@ -295,6 +301,7 @@ class SingleGridColumnWrfChemDataLoader(BaseWrfChemDataLoader):
         self.data.close()
         gc.collect()
 
+    @TimeTrackingWrapper
     def _set_geoinfos(self):
         # identify nearest coords
         self._set_nearest_icoords(dim=[self.logical_x_coord_name, self.logical_y_coord_name])
@@ -329,6 +336,7 @@ class SingleGridColumnWrfChemDataLoader(BaseWrfChemDataLoader):
     def geo_infos(self):
         return self._geo_infos
 
+    @TimeTrackingWrapper
     def _apply_external_coordinates(self):
         ds_coords = xr.open_dataset(self.external_coords_file, chunks={'south_north': 36, 'west_east': 40})
         data = self._data
@@ -336,7 +344,7 @@ class SingleGridColumnWrfChemDataLoader(BaseWrfChemDataLoader):
             data = data.assign_coords({k: (remove_items(list(v.dims), 'Time'), v.values.squeeze())})
         self._data = data
         ds_coords.close()
-        logging.debug('setup external coords')
+        # logging.debug('setup external coords')
 
     def _set_coords(self, coords):
         __set_coords = dict(lat=None, lon=None)
@@ -359,6 +367,7 @@ class SingleGridColumnWrfChemDataLoader(BaseWrfChemDataLoader):
         else:
             return self.__coords
 
+    @TimeTrackingWrapper
     def _set_nearest_icoords(self, dim=None):
         lat, lon = self.get_coordinates(as_arrays=True)
         self._nearest_icoords = dask.compute(self.compute_nearest_icoordinates(lat, lon, dim))[0]
@@ -396,7 +405,6 @@ class DataHandlerSingleGridColumn(DataHandlerSingleStation):
     def __init__(self, *args, external_coords_file=None,
                  var_logical_z_coord_selector=None,
                  targetvar_logical_z_coord_selector=None, **kwargs):
-        logging.info("Initialise DataHandlerSingleGridColumn")
         self.external_coords_file = external_coords_file
         self.var_logical_z_coord_selector = self._ret_z_coord_select_if_valid(var_logical_z_coord_selector,
                                                                               as_input=True)
@@ -436,6 +444,7 @@ class DataHandlerSingleGridColumn(DataHandlerSingleStation):
     def setup_data_path(self, data_path: str, sampling: str):
         return data_path
 
+    @TimeTrackingWrapper
     def extract_data_from_loader(self, loader):
         data = loader.data.isel(loader.get_nearest_icoords()).squeeze()[self.variables]
         return data
@@ -608,7 +617,6 @@ class DataHandlerSectorGrid(DataHandlerSingleGridColumn):
     _requirements = DataHandlerWRF.requirements()
 
     def __init__(self, *args, radius=None, sectors=None, wind_sector_edge_dim_name=None,  **kwargs):
-        logging.info("Initialise DataHandlerSectorGrid")
         if radius is None:
             radius = 100  # km
         self.radius = radius
@@ -624,6 +632,7 @@ class DataHandlerSectorGrid(DataHandlerSingleGridColumn):
         self.wind_dir_name = None
         super().__init__(*args, **kwargs)
 
+    @TimeTrackingWrapper
     def extract_data_from_loader(self, loader):
         wind_dir_name = self._get_wind_dir_var_name(loader)
         full_data = loader.data.isel(loader.get_nearest_icoords()).squeeze()
@@ -673,6 +682,7 @@ class DataHandlerSectorGrid(DataHandlerSingleGridColumn):
                                   opts=trafo_opts, transformation_dim=self.target_dim)
         return trafo
 
+    @TimeTrackingWrapper
     def modify_history(self):
         if self.transformation_is_applied:
             ws_edges = self.get_applied_transdormation_on_wind_sector_edges()
@@ -721,11 +731,13 @@ class DataHandlerSectorGrid(DataHandlerSingleGridColumn):
         else:
             return self.history
 
+    @TimeTrackingWrapper
     def get_section_data_from_circle(self, grid_data, loader, sect):
         sec_data = grid_data.where(
             self.windsector.is_in_sector(sect, loader.geo_infos.bearing.drop('points').squeeze()))
         return sec_data
 
+    @TimeTrackingWrapper
     def preselect_and_transform_neighbouring_data_based_on_radius(self, loader):
         """
         Select neighbouring grid boxes which have a maximal distance of pre-selected radius from full model field
@@ -750,14 +762,17 @@ class DataHandlerSectorGrid(DataHandlerSingleGridColumn):
 
         return grid_data
 
+    @TimeTrackingWrapper
     def apply_aggregation_method_on_sector_data(self, data, loader):
         data = data.mean(dim=(loader.logical_x_coord_name, loader.logical_y_coord_name))
         return data
 
+    @TimeTrackingWrapper
     def compute_wind_dir_of_interest(self):
         wind_dir_of_intrest = self.history.sel({self.target_dim: self.wind_dir_name, self.window_dim: 0})
         return wind_dir_of_intrest
 
+    @TimeTrackingWrapper
     def get_applied_transdormation_on_wind_sector_edges(self):
         ws_edges = self._get_left_and_right_wind_sector_edges(return_as='xr.da', dim=self.wind_sector_edge_dim_name)
         ws_edges = self.apply_transformation_on_data(ws_edges)
diff --git a/mlair/data_handler/default_data_handler.py b/mlair/data_handler/default_data_handler.py
index 02b15993a1a3db66c2b6e7dc564361e959ab9fa1..66f6b5b0b64c1126237880c2a722487254a71d21 100644
--- a/mlair/data_handler/default_data_handler.py
+++ b/mlair/data_handler/default_data_handler.py
@@ -60,14 +60,14 @@ class DefaultDataHandler(AbstractDataHandler):
 
     @classmethod
     def build(cls, station: str, **kwargs):
-        logging.info(f"build dh: DefaultDataHandler")
         sp_keys = {k: copy.deepcopy(kwargs[k]) for k in cls._requirements if k in kwargs}
         sp = cls.data_handler(station, **sp_keys)
         dp_args = {k: copy.deepcopy(kwargs[k]) for k in cls.own_args("id_class") if k in kwargs}
-        try:
-            return dask.compute(cls(sp, **dp_args))[0]
-        except Exception:
-            return cls(sp, **dp_args)
+        return cls(sp, **dp_args)
+        # try:
+        #     return dask.compute(cls(sp, **dp_args))[0]
+        # except Exception:
+        #     return cls(sp, **dp_args)
 
     def _create_collection(self):
         return [self.id_class]