diff --git a/.gitignore b/.gitignore
index 45f108620b1d399a57b839a45f5ef142ba46635b..f965ae5c65947112347ccd49df03f6cacaa486e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ build-*/
 build_*/
 dist/
 dataset_*/
+input/
 binaries*/
 examples/build-*/
 examples/build_*/
diff --git a/dataset/demo.avi b/dataset/demo.avi
deleted file mode 100644
index df20707af3b0a2cbcaaae127b982e1886b1d2aa7..0000000000000000000000000000000000000000
Binary files a/dataset/demo.avi and /dev/null differ
diff --git a/dataset/frames/1.png b/dataset/frames/1.png
deleted file mode 100644
index 1a4ed8f93d7c7608e44c0c1eee8671f175d97510..0000000000000000000000000000000000000000
Binary files a/dataset/frames/1.png and /dev/null differ
diff --git a/dataset/frames/10.png b/dataset/frames/10.png
deleted file mode 100644
index 9c07ad5665a35b67962c211add74a9833f76c4df..0000000000000000000000000000000000000000
Binary files a/dataset/frames/10.png and /dev/null differ
diff --git a/dataset/frames/11.png b/dataset/frames/11.png
deleted file mode 100644
index 85f67c257c774ee72abd7ed6007d040978ae1638..0000000000000000000000000000000000000000
Binary files a/dataset/frames/11.png and /dev/null differ
diff --git a/dataset/frames/12.png b/dataset/frames/12.png
deleted file mode 100644
index 0783b9a16ccfea475739c76c6b9728c0e019451a..0000000000000000000000000000000000000000
Binary files a/dataset/frames/12.png and /dev/null differ
diff --git a/dataset/frames/13.png b/dataset/frames/13.png
deleted file mode 100644
index 03708da8d30130acfb7ebfd36e347dceff32d286..0000000000000000000000000000000000000000
Binary files a/dataset/frames/13.png and /dev/null differ
diff --git a/dataset/frames/14.png b/dataset/frames/14.png
deleted file mode 100644
index 0d9f183b72d905abce0f1d7d0e4ba703a3aab183..0000000000000000000000000000000000000000
Binary files a/dataset/frames/14.png and /dev/null differ
diff --git a/dataset/frames/15.png b/dataset/frames/15.png
deleted file mode 100644
index 921e373c1da9b7429b73a3f6a55b4f7985f6570b..0000000000000000000000000000000000000000
Binary files a/dataset/frames/15.png and /dev/null differ
diff --git a/dataset/frames/16.png b/dataset/frames/16.png
deleted file mode 100644
index 35724c6a80b1f58934b2bb77f01e6c038645c8d6..0000000000000000000000000000000000000000
Binary files a/dataset/frames/16.png and /dev/null differ
diff --git a/dataset/frames/17.png b/dataset/frames/17.png
deleted file mode 100644
index c7c00dba83f4944f330257a324966556d9a2af9b..0000000000000000000000000000000000000000
Binary files a/dataset/frames/17.png and /dev/null differ
diff --git a/dataset/frames/18.png b/dataset/frames/18.png
deleted file mode 100644
index f720f094d52c37e4a66681cee9d569ca755e402c..0000000000000000000000000000000000000000
Binary files a/dataset/frames/18.png and /dev/null differ
diff --git a/dataset/frames/19.png b/dataset/frames/19.png
deleted file mode 100644
index f79ba5ef716f40dbe2c71287efab0afc591f424d..0000000000000000000000000000000000000000
Binary files a/dataset/frames/19.png and /dev/null differ
diff --git a/dataset/frames/2.png b/dataset/frames/2.png
deleted file mode 100644
index 80b69ff2b3ddd06cd6abd3176954ceeef6c9085f..0000000000000000000000000000000000000000
Binary files a/dataset/frames/2.png and /dev/null differ
diff --git a/dataset/frames/20.png b/dataset/frames/20.png
deleted file mode 100644
index 8fa857f9e9391c98f1b7cd800ccf425ffce774c6..0000000000000000000000000000000000000000
Binary files a/dataset/frames/20.png and /dev/null differ
diff --git a/dataset/frames/21.png b/dataset/frames/21.png
deleted file mode 100644
index 4066689da9e99c9557877c4e019c95d2f49c2ef7..0000000000000000000000000000000000000000
Binary files a/dataset/frames/21.png and /dev/null differ
diff --git a/dataset/frames/22.png b/dataset/frames/22.png
deleted file mode 100644
index 4eab05935ad942a5b47e27d581bf8b03a0588987..0000000000000000000000000000000000000000
Binary files a/dataset/frames/22.png and /dev/null differ
diff --git a/dataset/frames/23.png b/dataset/frames/23.png
deleted file mode 100644
index 95c7ae4a2a4e47663f8a6264a63fb7631e66828c..0000000000000000000000000000000000000000
Binary files a/dataset/frames/23.png and /dev/null differ
diff --git a/dataset/frames/24.png b/dataset/frames/24.png
deleted file mode 100644
index e7911f18e2c857f0a0fdd8f9601df0e006abf4b0..0000000000000000000000000000000000000000
Binary files a/dataset/frames/24.png and /dev/null differ
diff --git a/dataset/frames/25.png b/dataset/frames/25.png
deleted file mode 100644
index e622e96e6c24a9d09d40df8cea1a0d31661a0d72..0000000000000000000000000000000000000000
Binary files a/dataset/frames/25.png and /dev/null differ
diff --git a/dataset/frames/26.png b/dataset/frames/26.png
deleted file mode 100644
index 75d2365412c18313ea6af382c5df3bd93383edfe..0000000000000000000000000000000000000000
Binary files a/dataset/frames/26.png and /dev/null differ
diff --git a/dataset/frames/27.png b/dataset/frames/27.png
deleted file mode 100644
index 5293e7ec038fb349e4830dbc10f977cfc9af2387..0000000000000000000000000000000000000000
Binary files a/dataset/frames/27.png and /dev/null differ
diff --git a/dataset/frames/28.png b/dataset/frames/28.png
deleted file mode 100644
index 6bc933b3124ff2d0c7680880a787ce8968df378a..0000000000000000000000000000000000000000
Binary files a/dataset/frames/28.png and /dev/null differ
diff --git a/dataset/frames/29.png b/dataset/frames/29.png
deleted file mode 100644
index 7eaaee299cfd2befad83343a39ad7a9fb588548b..0000000000000000000000000000000000000000
Binary files a/dataset/frames/29.png and /dev/null differ
diff --git a/dataset/frames/3.png b/dataset/frames/3.png
deleted file mode 100644
index eb322896c9e700297724c022585bf2ed4bc0e8ee..0000000000000000000000000000000000000000
Binary files a/dataset/frames/3.png and /dev/null differ
diff --git a/dataset/frames/30.png b/dataset/frames/30.png
deleted file mode 100644
index c3e1cd0304f2ae22ffea69c680deb4128e8ed3b1..0000000000000000000000000000000000000000
Binary files a/dataset/frames/30.png and /dev/null differ
diff --git a/dataset/frames/31.png b/dataset/frames/31.png
deleted file mode 100644
index 6ec4856fbd4c0ed376d26a12a94b02d9c0bf3aad..0000000000000000000000000000000000000000
Binary files a/dataset/frames/31.png and /dev/null differ
diff --git a/dataset/frames/32.png b/dataset/frames/32.png
deleted file mode 100644
index 8feacd220e70c59f0a07fb452f8f0402ffaf2bd9..0000000000000000000000000000000000000000
Binary files a/dataset/frames/32.png and /dev/null differ
diff --git a/dataset/frames/33.png b/dataset/frames/33.png
deleted file mode 100644
index 7d88de32cd05ce981e9799bb9426b5e09b267d37..0000000000000000000000000000000000000000
Binary files a/dataset/frames/33.png and /dev/null differ
diff --git a/dataset/frames/34.png b/dataset/frames/34.png
deleted file mode 100644
index 9738ac35797fd92f6f03b1995282726535486109..0000000000000000000000000000000000000000
Binary files a/dataset/frames/34.png and /dev/null differ
diff --git a/dataset/frames/35.png b/dataset/frames/35.png
deleted file mode 100644
index f85022addeb84309f1617303af164004ea89996a..0000000000000000000000000000000000000000
Binary files a/dataset/frames/35.png and /dev/null differ
diff --git a/dataset/frames/36.png b/dataset/frames/36.png
deleted file mode 100644
index edbdb627f1a066d773d2234006ca2f5b238291d7..0000000000000000000000000000000000000000
Binary files a/dataset/frames/36.png and /dev/null differ
diff --git a/dataset/frames/37.png b/dataset/frames/37.png
deleted file mode 100644
index b27dacb396cfa0d522a925a91c35b4c6f5367ec0..0000000000000000000000000000000000000000
Binary files a/dataset/frames/37.png and /dev/null differ
diff --git a/dataset/frames/38.png b/dataset/frames/38.png
deleted file mode 100644
index f20555cc48e82c650fa91e3d3b8b3cd9e6d0c2b3..0000000000000000000000000000000000000000
Binary files a/dataset/frames/38.png and /dev/null differ
diff --git a/dataset/frames/39.png b/dataset/frames/39.png
deleted file mode 100644
index 29ea25b2d90fdb2bf9cc06b45fd343284e95e7a5..0000000000000000000000000000000000000000
Binary files a/dataset/frames/39.png and /dev/null differ
diff --git a/dataset/frames/4.png b/dataset/frames/4.png
deleted file mode 100644
index a2aa98d09932851785df270c0ff2738bc3d337e9..0000000000000000000000000000000000000000
Binary files a/dataset/frames/4.png and /dev/null differ
diff --git a/dataset/frames/40.png b/dataset/frames/40.png
deleted file mode 100644
index 03b5279994d159a8cb9c203003dc0419673eba7f..0000000000000000000000000000000000000000
Binary files a/dataset/frames/40.png and /dev/null differ
diff --git a/dataset/frames/41.png b/dataset/frames/41.png
deleted file mode 100644
index 976fa7b6446395551217f296d88d4d058b12ea3e..0000000000000000000000000000000000000000
Binary files a/dataset/frames/41.png and /dev/null differ
diff --git a/dataset/frames/42.png b/dataset/frames/42.png
deleted file mode 100644
index 7d0ed3b876d3767cfb1558df0019f8bc21646245..0000000000000000000000000000000000000000
Binary files a/dataset/frames/42.png and /dev/null differ
diff --git a/dataset/frames/43.png b/dataset/frames/43.png
deleted file mode 100644
index 2965fe3099e1986ccf64eb333acbebc95cec8625..0000000000000000000000000000000000000000
Binary files a/dataset/frames/43.png and /dev/null differ
diff --git a/dataset/frames/44.png b/dataset/frames/44.png
deleted file mode 100644
index 5166585036e1999f727292d3c8bef500e4054165..0000000000000000000000000000000000000000
Binary files a/dataset/frames/44.png and /dev/null differ
diff --git a/dataset/frames/45.png b/dataset/frames/45.png
deleted file mode 100644
index dbff43f8bb2432ffa2fe039fe1f0d48d6c717995..0000000000000000000000000000000000000000
Binary files a/dataset/frames/45.png and /dev/null differ
diff --git a/dataset/frames/46.png b/dataset/frames/46.png
deleted file mode 100644
index 8fe5f5d0ac8d82a377e37b5199ebaa0708a76fe3..0000000000000000000000000000000000000000
Binary files a/dataset/frames/46.png and /dev/null differ
diff --git a/dataset/frames/47.png b/dataset/frames/47.png
deleted file mode 100644
index a8abcbfcce3ff2bae81c12f8f1c9b6da3c4d026d..0000000000000000000000000000000000000000
Binary files a/dataset/frames/47.png and /dev/null differ
diff --git a/dataset/frames/48.png b/dataset/frames/48.png
deleted file mode 100644
index 8d3b50ea07eae1fdb99be15dc1975bfe37c3978e..0000000000000000000000000000000000000000
Binary files a/dataset/frames/48.png and /dev/null differ
diff --git a/dataset/frames/49.png b/dataset/frames/49.png
deleted file mode 100644
index b1a9facec97cff1a7cdc4d361b864a13294a0128..0000000000000000000000000000000000000000
Binary files a/dataset/frames/49.png and /dev/null differ
diff --git a/dataset/frames/5.png b/dataset/frames/5.png
deleted file mode 100644
index 51f1c69d5ab594c5c3a380a8cd36427e362fe038..0000000000000000000000000000000000000000
Binary files a/dataset/frames/5.png and /dev/null differ
diff --git a/dataset/frames/50.png b/dataset/frames/50.png
deleted file mode 100644
index 0d6d188637f2a77e3d1e4e431ff889fe4002c83a..0000000000000000000000000000000000000000
Binary files a/dataset/frames/50.png and /dev/null differ
diff --git a/dataset/frames/51.png b/dataset/frames/51.png
deleted file mode 100644
index a7a9e0fd7e4bf75fecf62591ea308666e2479266..0000000000000000000000000000000000000000
Binary files a/dataset/frames/51.png and /dev/null differ
diff --git a/dataset/frames/6.png b/dataset/frames/6.png
deleted file mode 100644
index 26ecff4356bd8680579a66aa9bfe71e92f1258cb..0000000000000000000000000000000000000000
Binary files a/dataset/frames/6.png and /dev/null differ
diff --git a/dataset/frames/7.png b/dataset/frames/7.png
deleted file mode 100644
index 203d1868d90bcde99b9cae23a9742602e5b18a53..0000000000000000000000000000000000000000
Binary files a/dataset/frames/7.png and /dev/null differ
diff --git a/dataset/frames/8.png b/dataset/frames/8.png
deleted file mode 100644
index 400a298793fc758fca9a945c55c23f9a6aec287e..0000000000000000000000000000000000000000
Binary files a/dataset/frames/8.png and /dev/null differ
diff --git a/dataset/frames/9.png b/dataset/frames/9.png
deleted file mode 100644
index 24efc11379200ddaf471030681f8bee424a6bb37..0000000000000000000000000000000000000000
Binary files a/dataset/frames/9.png and /dev/null differ
diff --git a/dataset/video.avi b/dataset/video.avi
deleted file mode 100644
index 828ec7ba863b23f7b0775d322c6b3d297035c4d5..0000000000000000000000000000000000000000
Binary files a/dataset/video.avi and /dev/null differ
diff --git a/dataset/video.avi.tgz b/dataset/video.avi.tgz
deleted file mode 100644
index db47b3dbe45fa70a18f56c2e2899e50fd307343c..0000000000000000000000000000000000000000
Binary files a/dataset/video.avi.tgz and /dev/null differ
diff --git a/dataset/video.tar b/dataset/video.tar
deleted file mode 100644
index 06315001198e1fef642531f224ddc930123bb668..0000000000000000000000000000000000000000
Binary files a/dataset/video.tar and /dev/null differ
diff --git a/dataset/video02.avi b/dataset/video02.avi
deleted file mode 100644
index 4c9299cfd75fafb25b7b75e72c1e97357269199a..0000000000000000000000000000000000000000
Binary files a/dataset/video02.avi and /dev/null differ
diff --git a/dataset/video03.avi b/dataset/video03.avi
deleted file mode 100644
index c2873f201f5227dbd58f654421fefaf94d0bfcb5..0000000000000000000000000000000000000000
Binary files a/dataset/video03.avi and /dev/null differ
diff --git a/examples/Demo.cpp b/examples/Demo.cpp
index d3e2c1c8d070333bf92c80744fa02d1bc3cc5fcc..5cf4a152d0b568a1a20207a0e290d443ddb354ca 100644
--- a/examples/Demo.cpp
+++ b/examples/Demo.cpp
@@ -1,6 +1,9 @@
 /*
 bgs_demo -i ../../dataset/video.tar -a 100 -o ../../output -c ../../config/centerConfigFile.xml -p ../../config/camParam.xml
 
+TODO
+> input = tar of mp4s?
+> amount = ??? number of mp4s??
 
 #### Background Subtraction Methods #####
 
@@ -40,7 +43,8 @@ my own adapter to use the model (tapter?)
 #include <string.h>
 #include <unistd.h>
 
-#include <regex> //cpp 11X
+#include <regex> //cpp11
+#include <filesystem> //cpp17
 
 #define PROCESS_CENTER_VERSION_MAJOR 2
 #define PROCESS_CENTER_VERSION_MINOR 0
@@ -53,9 +57,6 @@ using namespace bgslibrary::algorithms;
 using namespace cv;
 using namespace std;
 
-String camParamFile, centerFile, outputDir, inputFile;
-int amountFiles;
-
 const string ABOUT_STRING=R"("Camtron Software B v2.0.0
 
 the software extracts the position of individuals in a single frame
@@ -71,7 +72,7 @@ Canny 1986. A Computational Approach to Edge Detection
 (framework opencv version 3.2.)
 e) made a selection of all extracted polygons to reduce wrong positives
 remove all polygons with area of bounding rectangles lower threshold min ( 150 pixel x pixel)
- and bigger than threshold max ( 300 000 pixel x pixel  )
+and bigger than threshold max ( 300 000 pixel x pixel  )
 f) calculate convex hull of all remaining points of all polygones
 g) calculate Hu invariants of convex hull
 Hu 1962 “Visual Pattern Recognition by Moment Invariants “
@@ -80,44 +81,86 @@ g) calculate the Centroid of convex hull with hu invariants
 e) save the remaining centroids for a frame to file
 )";
 
+//
+// FWD DCLs
+//
+
+void my_handler(int signum);
+vector<char> copyDataInBuffer(struct archive *aw);
+int toFrameNumber(string filename); //! convert our actual jpg file number to framenumber
+void init();
+void read_camParamFile();
+void read_centerFile();
+void libArchive_init();
+void print_ruler();
+
 //
 // GLOBALS
 //
 
-Scalar color_red( 0,0,255,255 );
-const int FILE_ERROR = -3;
+String camParamFile, centerFile, outputDir, inputFile;
+int amountFiles;
+
+Mat distCoeffs;
+Mat cameraMatrix;
+
+int circleCenterX=880;
+int circleCenterY=750;
+int circleRadius=700;
+
+struct archive *archive;
+struct archive *ext;
+struct archive_entry *entry;
+
 int g_badSignalFlagAbort = 0;
+Scalar color_red( 0,0,255,255 );
 
-void my_handler(int signum);
+namespace error {
+	enum {
+		libarchive_file,
+		unexpected_frame_number,
+		file_not_found,
+		opening_config_file,
+	};
+}
 
-vector<char> copyDataInBuffer(struct archive *aw);
 
-//! convert our actual jpg file number to framenumber
-int toFrameNumber(string filename);
+// ###########
 
-void checkFiles(std::vector<String> files_or_dirs)
+void print_ruler()
+{
+	std::cout << "######################################" << endl;
+}
+
+void checkFiles(map<string, string> files_or_dirs)
 {
 	bool ret = false;
-	for (auto f : files_or_dirs) {
-		if (!std::filesystem::exists(f))
+	for(const auto& [k,v] : files_or_dirs) {
+		if (!std::filesystem::exists(v))
 		{
-			std::cerr << f << " doesn't exist!" << std::endl;
+			cerr << k << ": " << v << " [not found!] " << endl;
 			ret = true;
 		}
+		else
+		{
+			cout << k << ": " << v << endl;
+		}
 	}
+
+	print_ruler();
 	if (ret)
-		exit(1);
+		exit(error::file_not_found);
 }
 
 void parse(int argc, char** argv)
 {
 	const String keys =
-	"{help h usage ? || " + String(argv[0]) + " -i=in.tar -a=10 -c=center.xml -o=outPath -p=camparameterFile.xml  }"
-	"{i|| input tarfile/dir containing tars? }"
-	"{o|.| output path / dir }"
-	"{a|-1| amount of files/frames }"
-	"{p|camparam.yml| camera parameter file }"
-	"{c|<none>| exact center xml-conf file }"
+	"{help h usage ? || " + String(argv[0]) + " -i=in.tar -a=10 -c=center.xml -o=outPath -p=camparam.xml }"
+	"{i|../input/| input tarfile/dir containing tars? }"
+	"{o|../output| output path / dir }"
+	"{a|| amount of files/frames }"
+	"{p|../config/camparam.yml| camera parameter file }"
+	"{c|../config/center.xml| exact center xml-conf file }"
 	;
 
 	CommandLineParser parser(argc, argv, keys);
@@ -141,78 +184,64 @@ void parse(int argc, char** argv)
 		exit(1);
 	}
 
-	checkFiles({camParamFile, centerFile, outputDir, inputFile});
-
-	// cout << "args: -i " << inputFile << " -a " << amountFiles << " -c" << centerFileString << " -o " << outputDir << " -p " << camParamFile << endl;
-	std::cout << "inputFile: " << inputFile << std::endl;
-	std::cout << "outputDir: " << outputDir << std::endl;
 	std::cout << "amountFiles: " << amountFiles << std::endl;
-	std::cout << "camParamFile: " << camParamFile << std::endl;
-	std::cout << "centerFile: " << centerFile << std::endl;
-	std::cout << "######################################" << endl;
-
+	checkFiles({{"camParamFile",camParamFile}, {"centerFile",centerFile}, {"outputDir",outputDir}, {"inputFile",inputFile}});
 }
 
 void init()
 {
 	signal(SIGUSR1, my_handler);
 	srand (time(NULL)); //init the random number generator
+
+	read_camParamFile();
+	read_centerFile();
+	libArchive_init();
 }
 
-void read_camParamFile(Mat& distCoeffs, Mat& cameraMatrix)
+void read_camParamFile()
 {
-		std::string camParamFile = cameraParameterFile;
-		FileStorage fs(camParamFile, FileStorage::READ);
-		if (!fs.isOpened())
-		{
-			std::cerr << "error opening '" << camParamFile << "' will abort" << endl;
-			return FILE_ERROR;
-		}
+	FileStorage fs(camParamFile, FileStorage::READ);
+	if (!fs.isOpened())
+	{
+		std::cerr << "error opening '" << camParamFile << "' will abort" << endl;
+		exit(error::opening_config_file);
+	}
 
-		fs["camera_matrix"] >>  cameraMatrix;
-		fs["distortion_coefficients"] >> distCoeffs;
+	fs["camera_matrix"] >>  cameraMatrix;
+	fs["distortion_coefficients"] >> distCoeffs;
 
-		cout <<	cameraMatrix << endl << distCoeffs << endl;
+	cout <<	"cameraMatrix" << cameraMatrix << endl;
+	cout << "distCoeffs" << distCoeffs << endl;
+	print_ruler();
 } //fs.release();
 
-void read_centerFile(int circleCenterX=880, int circleCenterY=750, int circleRadius=700)
+void read_centerFile()
 {
 	 //! read the center config file to cut out the ROI
 	// TODO merge this config with the Tapter.xml ??
-	FileStorage fsCen;
-	fsCen.open(centerFile, FileStorage::READ);
-	if (!fsCen.isOpened())
+	FileStorage fs(centerFile, FileStorage::READ);
+	if (!fs.isOpened())
 	{
-		cout << "error during open " << centerFileString << " will abort" << endl;
-		return EXIT_FAILURE;
+		cout << "error opening :" << centerFile << endl;
+		exit(error::opening_config_file);
 	}
 
-	circleCenterX = (int) fsCen["circleCenterX"];
-	circleCenterY = (int) fsCen["circleCenterY"];
-	circleRadius = (int) fsCen["circleRadius"];\
+	circleCenterX = (int) fs["circleCenterX"];
+	circleCenterY = (int) fs["circleCenterY"];
+	circleRadius = (int) fs["circleRadius"];
 
 	cout  << "circleRadius: " << circleRadius << endl;
 	cout  << "circleCenterX: " << circleCenterX << endl;
 	cout  << "circleCenterY: " << circleCenterY << endl;
+	print_ruler();
 
-} //fsCen.release();
+} //fs.release();
 
-int main(int argc, char * argv[])
+void libArchive_init()
 {
-	parse(argc, argv);
-	init();
-
-	cout << "Using OpenCV " << CV_MAJOR_VERSION << "." << CV_MINOR_VERSION << "." << CV_SUBMINOR_VERSION << endl;
-	cout << "Using processcenter  " << PROCESS_CENTER_VERSION_MAJOR << "." << PROCESS_CENTER_VERSION_MINOR << "." << PROCESS_CENTER_VERSION_MINOR_FIXES << endl << endl;
-
-	//libarchive things
-
-	struct archive *archive;
-	struct archive *ext;
-	struct archive_entry *entry;
-	int r;
 	int flags = ARCHIVE_EXTRACT_TIME; // see https://linux.die.net/man/3/archive_write_disk for more flags
-	const char *filename = testFile;
+	const char *filename = inputFile.c_str(); //XXX needed?
+	// const char *filename = "testFile"; //XXX needed?
 
 	archive = archive_read_new();
 	ext = archive_write_disk_new();
@@ -225,24 +254,29 @@ int main(int argc, char * argv[])
 		filename = NULL;
 
 	// and open the handler
-	if ((r = archive_read_open_filename(archive, filename, 10240)))
+	if (archive_read_open_filename(archive, filename, 10240))
 	{
 		cerr << "archive_read_open_filename: error: " << archive_error_string(archive) << " will abort" << endl;
-		exit(1);
+		exit(error::libarchive_file);
 	}
+}
+
+int main(int argc, char * argv[])
+{
+	parse(argc, argv);
+	init();
 
-	IBGS *bgs = new FrameDifference;
-	// IBGS *bgs = new PixelBasedAdaptiveSegmenter; // TODO
+	cout << "Using OpenCV " << CV_MAJOR_VERSION << "." << CV_MINOR_VERSION << "." << CV_SUBMINOR_VERSION << endl;
+	cout << "Using processcenter  " << PROCESS_CENTER_VERSION_MAJOR << "." << PROCESS_CENTER_VERSION_MINOR << "." << PROCESS_CENTER_VERSION_MINOR_FIXES << endl << endl;
 
-	Mat distCoeffs, cameraMatrix;
-	read_camParamFile(distCoeffs, cameraMatrix);
 
-	int circleCenterX, circleCenterY, circleRadius;
-	read_centerFile(circleCenterX, circleCenterY, circleRadius);
 
+	// IBGS *bgs = new FrameDifference;
+	IBGS *bgs = new PixelBasedAdaptiveSegmenter; // TODO
 
-	system( "echo 'sleep a bit... ' && sleep 12" );
-	exit(EXIT_SUCCESS);
+
+	int ret=system( "echo 'sleep a bit... ' && sleep 12" );
+	exit(ret);
 
 	cout << "a) process all frames " << endl;
 
@@ -251,6 +285,7 @@ int main(int argc, char * argv[])
 	int frameCounter=0;
 	int myFileTarWriterHeaderCounter = 0;
 	int frameCounterOld = -1;
+	int r = -1;
 	vector<string> myFileErrorList;//list for pure io error
 	vector<string> myFileListNoContour; //list for no contours found;
 	vector<string> myFileListAfterContourSelection; //list for no contours found after selection;
@@ -271,7 +306,7 @@ int main(int argc, char * argv[])
 		r = archive_read_next_header(archive, &entry);
 		if (r == ARCHIVE_EOF)
 			break;
-		if (r != ARCHIVE_OK)
+		else if (r != ARCHIVE_OK)
 		{
 			cerr << "archive_read_next_header: error: " << archive_error_string(archive) << " will abort" << endl;
 			exit(1);
@@ -288,7 +323,7 @@ int main(int argc, char * argv[])
 		if(frameCounterOld>frameCounter)
 		{
 			cerr << " error during read in the file number, found non-monotonic order, will abort";
-			exit(1);
+			exit(error::unexpected_frame_number);
 		}
 
 		frameCounterOld = frameCounter;
@@ -662,7 +697,7 @@ int toFrameNumber(string filename)
 {
 	int retVal = -1;
 
-	//we cut out all non needed substrings
+	//cut out all non-needed substrings
 	filename = regex_replace(filename, regex("/"), "");
 	filename = regex_replace(filename, regex("data_sized"), "");
 	filename = regex_replace(filename, regex("jpg"), "");
diff --git a/examples/run_demo.sh b/examples/run_demo.sh
index 7f3481135b5d575f91b87b66b6e3a33605c79f71..e5bf616808f805ac6168218f9222e9027a509c20 100755
--- a/examples/run_demo.sh
+++ b/examples/run_demo.sh
@@ -1,16 +1,13 @@
 #!/bin/bash
-# ./build/bgs_demo ../dataset/video.avi
- ./build/bgs_demo -i ../dataset/video.tar -a 40 -p ../config/camParam.xml -o ../output  -c ../config/centerConfigFile.xml
 
- # -i data_sized.tar
+# ./build/bgs_demo -a=40 -p=../config/2019-10-15-d4-calibration-parameter-n500.xml -o=../output  -c=../config/camera_center_d3.xml
+./build/bgs_demo -i=../input/rec11983200track.mp4 -a=40 -p=../config/2019-10-15-d4-calibration-parameter-n500.xml -o=../output  -c=../config/camera_center_d3.xml
+
+# -i data_sized.tar (not gzipped)
  	#multiple tar'ed videos?
+ 	# looking for sth like: rec1235678p/
 
- # -c exactCenter
- 	#HOW?
-	# circleCenterX
-	# circleCenterY
-	# circleRadius
+# -a ?
 
-# -p camParam
-# camera_matrix
-# distortion_coefficients
+# -c exactCenter
+# -p camera calibration Parameters
diff --git a/opencv b/opencv
deleted file mode 100644
index cb548bcad92dc45d48f2d42355b044a063c55f0f..0000000000000000000000000000000000000000
--- a/opencv
+++ /dev/null
@@ -1,127 +0,0 @@
-
-point2f(y,x) # inverted!
-BGR 	#not rgb ...
-Scalar = 4 element vector
-CV_RGB(r, g, b) #from bgs
-
-Types:
-	#depth
-	CV_8U 	unsigned char
-	CV_8S 	char
-	CV_16U 	unsigned short
-	CV_16S 	short
-	CV_32S 	int
-	CV_32F 	float
-	CV_64F 	double
-	# + channels C1..4 	eg RGBA:
-	# eg Mat M(2,2, CV_8UC3, Scalar(0,0,255));
-	0 to 255 for CV_8U images
-	0 to 65535 for CV_16U images
-	0 to 1 for CV_32F images
-
-
-
-# Camera Calibration:
-########################
-	distortion_coefficients - 5 values
-	camera_matrix - 3x3 matrix - eg focal length etc.
-
-	different methods:
-		https://docs.opencv.org/4.x/d7/d21/tutorial_interactive_calibration.html
-		https://docs.opencv.org/4.x/d6/d55/tutorial_table_of_content_calib3d.html
-
-		# using chess board, to get values
-		https://github.com/abidrahmank/OpenCV2-Python-Tutorials/blob/master/source/py_tutorials/py_calib3d/py_calibration/py_calibration.rs
-
-
-
-# Matrices
-########################
-	Fill matrix with random values
-		Mat R = Mat(3, 2, CV_8UC3);
-		randu(R, Scalar::all(0), Scalar::all(255));
-
-	Formatted output
-		cout << "R (csv)     = " << endl << format(R, Formatter::FMT_CSV   ) << endl << endl;
-		#sa FMT_C/PYTHON/NUMPY/CSV
-
-	InputArray = vector or Mat
-
-	type()
-	create(r,c,t)
-	copyTo()
-	clone() for deep copy
-	cv::Mat F = cv::Mat::ones(3, 4, CV_32FC1) * 3; //all 3's
-
-	traverse: https://programmersought.com/article/72762264465/
-
-##roi - region of interest
-	x, y, w, h
-
-	// roi as subset of full data image
-	Mat D (A, Rect(10, 10, 100, 100) ); // using a rectangle
-	Mat E = A(Range::all(), Range(1,3)); // using row and column boundaries
-
-	locateROI, adjustROI,
-
-
-# CommandLineParser
-	@ -> positional arg
-	no default value -> has_XX
-	else: get<T>("XX")
-	<none> dflt value to ensure strings arent ""
-
-# MISC
-########################
-	glob( dir, file )
-
-	randu() # https://docs.opencv.org/4.x/d2/de8/group__core__array.html#ga1ba1026dca0807b27057ba6a49d258c0
-	cvtColor(img, img, COLOR_BGR2Luv); #convert color
-
-	sounds interesting:
-	selectROI, selectROIs, reduce, qt, dilate, erode,
-	convexhull, findcontours, checkChessboard, calibrateCamera
-	hough ?
-	hu-invariants, centroid
-	moments (weigthed avg of pixel intensities)
-		spatial <> central <> central normalized
-
-	randPattern
-
-
-BS:
-https://docs.opencv.org/4.x/da/d5c/tutorial_canny_detector.html
-https://docs.opencv.org/4.x/d1/dc5/tutorial_background_subtraction.html
-https://web.archive.org/web/20140418093037/http://bmc.univ-bpclermont.fr/
-https://web.archive.org/web/20140221195750/http://docs.opencv.org/trunk/doc/tutorials/video/background_subtraction/background_subtraction.html
-https://www.pyimagesearch.com/2020/07/27/opencv-grabcut-foreground-segmentation-and-extraction/
-https://learnopencv.com/applications-of-foreground-background-separation-with-semantic-segmentation/
-https://docs.opencv.org/4.x/d2/d55/group__bgsegm.html
-https://docs.opencv.org/4.x/d5/de8/samples_2cpp_2segment_objects_8cpp-example.html#_a15
-
-tuts:))
-https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html
-https://datahacker.rs/opencv-thresholding/
-
-# median frame as bg + frame difference
-https://learnopencv.com/simple-background-estimation-in-videos-using-opencv-c-python/
-
-https://learnopencv.com/contour-detection-using-opencv-python-c/
-https://learnopencv.com/deep-learning-with-opencvs-dnn-module-a-definitive-guide/
-
-moments
-https://docs.opencv.org/4.x/d0/d49/tutorial_moments.html
-
-#BGS
-https://docs.opencv.org/4.x/d8/d38/tutorial_bgsegm_bg_subtraction.html
-
-
-
-# alliedvision-vimba-sdk
-#######################
-	AsynchronousGrab example > to use with opencv
-
-	/tmp/mozilla_sugu0/Vimba_installation_under_Linux-1.pdf
-
-	C-api
-	https://www.ansatt.hig.no/ares/Support/Camera%20drivers/AVT/Vimba/1.1/VimbaC/Documentation/Vimba%20C%20Manual.pdf