diff --git a/saqc/__main__.py b/saqc/__main__.py
new file mode 100644
index 0000000000000000000000000000000000000000..53bc2d8a67bbdb9b7973e9f152b3338e0f848735
--- /dev/null
+++ b/saqc/__main__.py
@@ -0,0 +1,45 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import click
+
+import numpy as np
+import pandas as pd
+
+from saqc.core import runner
+from saqc.flagger import CategoricalFlagger
+
+FLAGGERS = {
+    "number": CategoricalFlagger([-1, 0, 1]),
+    "string": CategoricalFlagger(["NIL", "OK", "BAD"])
+}
+
+@click.command()
+@click.option("-c", "--config", type=click.Path(exists=True), required=True, help="path to the configuration file")
+@click.option("-d", "--data", type=click.Path(exists=True), required=True, help="path to the data file")
+@click.option("--flagger", default="string", type=click.Choice(FLAGGERS.keys()), help="the flagging scheme to use")
+@click.option("--fail/--no-fail", default=True, help="whether to stop the program run on errors")
+@click.option("--nodata", default=np.nan, help="the nodata value")
+@click.option("--plot/--noplot", default=False, help="whether to plot the results")
+def main(config, data, flagger, fail, nodata, plot):
+
+    data = pd.read_csv(
+        data,
+        index_col=0,
+        parse_dates=True,
+    )
+
+    data, flagger = runner(
+        config_file=config,
+        flagger=FLAGGERS[flagger],
+        data=data,
+        nodata=nodata,
+        error_policy="raise" if fail else "warn"
+    )
+
+    # TODO: write file
+    flags = flagger.getFlags()
+
+
+if __name__ == "__main__":
+    main()
diff --git a/saqc/lib/plotting.py b/saqc/lib/plotting.py
index 900efcad2d15634bbe209ac77a8c80a50851da23..4d3f85bae491d734a3011d97376f3606a59ae569 100644
--- a/saqc/lib/plotting.py
+++ b/saqc/lib/plotting.py
@@ -16,7 +16,7 @@ def plotAllHook(data, flagger):
         _plot(data, flagger, True, __plotvars)
 
 
-def plotHook(data, old, new, varname, do_plot, flag_test, plot_nans=True):
+def plotHook(data, old, new, varname, do_plot, flag_test, plot_nans=False):
     # old/new: flagger
     if do_plot:
         __plotvars.append(varname)