diff --git a/core.py b/core.py
index a389b50fbecd10ee2d7adbfad8ea17303c66a141..ecc803d5011d94a64204ce981eda5bb6ff9e073b 100644
--- a/core.py
+++ b/core.py
@@ -99,8 +99,8 @@ def runner(meta, flagger, data, flags=None, nodata=np.nan):
                 raise NameError(
                     f"function name {func_name} is not definied (variable '{varname}, 'line: {idx + 1})")
 
-            old = flagger.getFlags(fchunk[varname])
-            new = flagger.getFlags(ffchunk[varname])
+            old = flagger.isFlagged(fchunk[varname])
+            new = flagger.isFlagged(ffchunk[varname])
             mask = old != new
 
             # flag a timespan after the condition is met
@@ -258,7 +258,7 @@ def readData(fname, index_col, nans):
 
 
 if __name__ == "__main__":
-    from flagger import PositionalFlagger
+    from flagger import DmpFlagger
     datafname = "resources/data.csv"
     metafname = "resources/meta.csv"
 
@@ -267,5 +267,5 @@ if __name__ == "__main__":
                     nans=["-9999", "-9999.0"])
     meta = prepareMeta(pd.read_csv(metafname), data)
 
-    flagger = PositionalFlagger()
+    flagger = DmpFlagger()
     pdata, pflags = runner(meta, flagger, data)
diff --git a/flagger/baseflagger.py b/flagger/baseflagger.py
index e8705cb93992e64c86b1dd1d0f7accde3ad2e24c..3c8a9312154896721783f96341b5cb4892447bef 100644
--- a/flagger/baseflagger.py
+++ b/flagger/baseflagger.py
@@ -44,7 +44,7 @@ class BaseFlagger:
         if flag is None:
             flag = self.flags.max()
         else:
-            self._check_flag(flag)
+            self._checkFlag(flag)
         flags = flags.copy()
         flags[flags < flag] = flag
         return flags.values
@@ -57,14 +57,10 @@ class BaseFlagger:
     def isFlagged(self, flags: ArrayLike, flag: T = None) -> ArrayLike:
         if flag is None:
             return pd.notnull(flags) & (flags > self.flags[0])
-        else:
-            self._check_flag(flag)
-            return flags >= flag
-
-    def getFlags(self, flags: ArrayLike):
-        return flags
+        self._checkFlag(flag)
+        return flags == flag
 
-    def _check_flag(self, flag):
+    def _checkFlag(self, flag):
         if flag not in self.flags:
             raise ValueError(f"Invalid flag '{flag}'. "
                              f"Possible choices are {list(self.flags.categories)[1:]}")
diff --git a/flagger/dmpflagger.py b/flagger/dmpflagger.py
index e6ea00f3eab3849aa63aba12bbbc539821000dfb..49642b6770c0005058068dd366719015c2e1a9e4 100644
--- a/flagger/dmpflagger.py
+++ b/flagger/dmpflagger.py
@@ -46,7 +46,7 @@ class DmpFlagger(BaseFlagger):
         if flag is None:
             flag = self.flags.max()
         else:
-            self._check_flag(flag)
+            self._checkFlag(flag)
 
         flags = self._reduceColumns(flags)
         mask = flags[FlagFields.FLAG] < flag
@@ -55,20 +55,9 @@ class DmpFlagger(BaseFlagger):
         return flags.values
 
     def isFlagged(self, flags, flag=None):
-        f = self.getFlags(flags)
-        return super().isFlagged(f, flag)
-
-    def getFlags(self, flags):
-        if isinstance(flags, pd.Series):
-            f = flags
-        elif isinstance(flags, pd.DataFrame):
-            if isinstance(flags.columns, pd.MultiIndex):
-                f = flags.xs(FlagFields.FLAG, level=ColumnLevels.FLAGS, axis=1)
-            else:
-                f = flags.loc[:, FlagFields.FLAG]
-        else:
-            raise TypeError
-        return f.squeeze()
+        flags = self._reduceColumns(flags)
+        flagcol = flags.loc[:, FlagFields.FLAG].squeeze()
+        return super().isFlagged(flagcol, flag)
 
     def _reduceColumns(self, flags):
         flags = flags.copy()