diff --git a/cml/shared/settings.py b/cml/shared/settings.py
index 69bc969077f38e4c00f1839de02e97627f02acf9..3c9dbcf8ff120e0c9e342982eda939f7a32c1697 100644
--- a/cml/shared/settings.py
+++ b/cml/shared/settings.py
@@ -1,13 +1,57 @@
 """Settings module.
 
 """
+
+
 from itertools import starmap
 from dataclasses import dataclass
 from configparser import ConfigParser
 
 
-# TODO (dmt): Set default values
-class Settings:
+class SetFeatures:
+    def __init__(self):
+        self.set_features = None
+
+    def __get__(self, instance, owner):
+        return self.set_features
+
+    def __set__(self, instance, value):
+        # TODO (dmt): Validate user input!
+        self.set_features = [int(i) for i in value.split(",")]
+
+
+class CutTimeStamp:
+    def __init__(self):
+        self.cut_time_stamp = False
+
+    def __get__(self, instance, owner):
+        return self.cut_time_stamp
+
+    def __set__(self, instance, value):
+        # TODO (dmt): Validate user input!
+        self.cut_time_stamp = bool(value)
+
+
+class BlockSize:
+    def __init__(self):
+        self.block_size = None
+
+    def __get__(self, instance, owner):
+        return self.block_size
+
+    def __set__(self, instance, value):
+        # TODO (dmt): Validate user input!
+        self.block_size = int(value)
+
+
+class MetaSettings(type):
+    SET_FEATURES: SetFeatures = SetFeatures()
+    CUT_TIME_STAMP: CutTimeStamp = CutTimeStamp()
+    BLOCK_SIZE: BlockSize = BlockSize()
+
+
+# TODO (dmt): Set default values.
+class Settings(metaclass=MetaSettings):
     INPUT_FILE: str = ""
     LEARN_DIR: str = ""
     MAX_LEARN_DIR: int = 0