diff --git a/enstools/encoding/dataset_encoding.py b/enstools/encoding/dataset_encoding.py
index 2485c1b80fe0e99d2ab655bccd86bbc99df6d36f..6ce3336a3d0d78240e3ef0e211aefcc11882407f 100644
--- a/enstools/encoding/dataset_encoding.py
+++ b/enstools/encoding/dataset_encoding.py
@@ -1,3 +1,4 @@
+import chunk
 import os
 from copy import deepcopy
 from pathlib import Path
diff --git a/enstools/encoding/variable_encoding.py b/enstools/encoding/variable_encoding.py
index b9ef7f3f835bc3117f0e738c32656c66949d6c08..d8c732a42d3f2710a3c4fe88e9b01e27c4f08057 100644
--- a/enstools/encoding/variable_encoding.py
+++ b/enstools/encoding/variable_encoding.py
@@ -1,8 +1,9 @@
+from abc import ABC
 
 from .definitions import lossy_compressors_and_modes
 import logging
 
-from typing import Mapping, Union
+from typing import Mapping, Union, Protocol
 
 import hdf5plugin
 
@@ -21,7 +22,6 @@ class _Mapping(Mapping):
     """
     Subclass to implement dunder methods that are mandatory for Mapping to avoid repeating the code everywhere.
     """
-
     def __init__(self) -> None:
         super().__init__()
         self._kwargs = {}
@@ -55,19 +55,6 @@ class Encoding(_Mapping):
     def __repr__(self):
         return f"{self.__class__.__name__}({self.to_string()})"
 
-    def set_chunk_sizes(self, chunk_sizes: tuple) -> None:
-        """
-        Method to add chunksizes into the encoding dictionary.
-        Parameters
-        ----------
-        chunk_sizes
-
-        Returns
-        -------
-
-        """
-        self._kwargs["chunksizes"] = chunk_sizes
-
 
 class VariableEncoding(_Mapping):
     """
@@ -97,7 +84,6 @@ class VariableEncoding(_Mapping):
     >>> VariableEncoding(backend="snappy", compression_level=9)
 
     """
-
     def __new__(cls,
                 specification: str = None,
                 compressor: str = None,
@@ -131,14 +117,12 @@ class NullEncoding(Encoding):
 
 class LosslessEncoding(Encoding):
     def __init__(self, backend: str, compression_level: int):
-        super().__init__()
         self.backend = backend if backend is not None else rules.LOSSLESS_DEFAULT_BACKEND
         self.compression_level = compression_level if compression_level is not None \
             else rules.LOSSLESS_DEFAULT_COMPRESSION_LEVEL
 
         self.check_validity()
-        # Trying to convert it to a dictionary already here.
-        self._kwargs = dict(self.encoding())
+        self._kwargs = self.encoding()
 
     def check_validity(self) -> bool:
         if self.backend not in definitions.lossless_backends:
@@ -164,16 +148,13 @@ class LosslessEncoding(Encoding):
 
 class LossyEncoding(Encoding):
     def __init__(self, compressor: str, mode: str, parameter: Union[float, int]):
-        super().__init__()
         self.compressor = compressor
         self.mode = mode
 
         self.parameter = parameter
 
         self.check_validity()
-
-        # Trying to convert it to a dictionary already here.
-        self._kwargs = dict(self.encoding())
+        self._kwargs = self.encoding()
 
     def check_validity(self):
         # Check compressor validity
@@ -265,6 +246,48 @@ def parse_variable_specification(var_spec: str) -> Encoding:
         raise InvalidCompressionSpecification(f"Invalid specification {var_spec!r}")
 
 
+# class VariableEncoding(_Mapping):
+#     """
+#     Class to encapsulate compression specification parameters for a single variable.
+#
+#     It stores the compressor, the mode and the parameter.
+#
+#     It has a method to create a new instance from a specification string,
+#     a method to get the corresponding specification string from an existing object
+#     and a method to obtain the corresponding mapping expected by h5py.
+#
+#     """
+#
+#     def __init__(self, specification: Specification):
+#         # Init basic components
+#         self.specification = specification
+#
+#         self._kwargs = self.filter_mapping()
+#
+#     @staticmethod
+#     def from_string(string: str) -> 'VariableEncoding':
+#         specification = parse_variable_specification(string)
+#         """
+#         Method to create a specification object from a specification string
+#         """
+#         return VariableEncoding(specification)
+#
+#     def to_string(self) -> str:
+#         """
+#         Method to obtain a specification string from a specification object
+#         """
+#         return self.specification.to_string()
+#
+#     def filter_mapping(self) -> Mapping:
+#         """
+#         Method to get the corresponding FilterRefBase expected by h5py/xarray
+#         """
+#
+#         return self.specification.encoding()
+#
+#     def description(self):
+#         self.specification.description()
+
 def get_variable_encoding(
         specification: str = None,
         compressor: str = None,