diff --git a/histoqc/BasicModule.py b/histoqc/BasicModule.py
index e426a0f..335c1d6 100644
--- a/histoqc/BasicModule.py
+++ b/histoqc/BasicModule.py
@@ -71,7 +71,7 @@ def finalProcessingArea(s, params):
             f"After BasicModule.finalProcessingArea NO tissue remains detectable! Downstream modules likely to be incorrect/fail")
 
 
-def countTissuePieces(s):
+def countTissuePieces(s, params):
     mask = s["img_mask_use"]
     stats = getMaskRegionsStats(mask)
-    s.addToPrintList("#pieces_of_tissue", str(stats.get('num', 0)))
\ No newline at end of file
+    s.addToPrintList("#pieces_of_tissue", str(stats.get('num', 0)))
diff --git a/histoqc/SaveModule.py b/histoqc/SaveModule.py
index 627f8ca..a831ad3 100644
--- a/histoqc/SaveModule.py
+++ b/histoqc/SaveModule.py
@@ -37,7 +37,7 @@ def saveFinalMask(s, params):
 
 
 def saveAssociatedImage(s, key:str, dim:int):
-    logging.info(f"{s['filename']} - \tsave{key.capitalize()}")
+    logging.info(f"{s['filename']}- save{key.capitalize()}")
     osh = s["os_handle"]
 
     if not key in osh.associated_images:
diff --git a/histoqc/tests/coverage.xml b/histoqc/tests/coverage.xml
index 99bdf26..beb3109 100644
--- a/histoqc/tests/coverage.xml
+++ b/histoqc/tests/coverage.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<coverage version="7.3.2" timestamp="1701885421689" lines-valid="2472" lines-covered="1749" line-rate="0.7075" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
-	<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.3.2 -->
+<coverage version="7.6.1" timestamp="1724336259868" lines-valid="2465" lines-covered="1068" line-rate="0.4333" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
+	<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.6.1 -->
 	<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
 	<sources>
-		<source>/Users/nanli/Documents/github/HistoQC/histoqc</source>
+		<source>/home/nli31/github/nanli-emory/HistoQC/histoqc</source>
 	</sources>
 	<packages>
-		<package name="." line-rate="0.7512" branch-rate="0" complexity="0">
+		<package name="." line-rate="0.4772" branch-rate="0" complexity="0">
 			<classes>
 				<class name="AnnotationModule.py" filename="AnnotationModule.py" complexity="0" line-rate="0" branch-rate="0">
 					<methods/>
@@ -95,7 +95,7 @@
 						<line number="126" hits="0"/>
 					</lines>
 				</class>
-				<class name="BaseImage.py" filename="BaseImage.py" complexity="0" line-rate="0.5433" branch-rate="0">
+				<class name="BaseImage.py" filename="BaseImage.py" complexity="0" line-rate="0.5616" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -107,6 +107,7 @@
 						<line number="7" hits="1"/>
 						<line number="8" hits="1"/>
 						<line number="10" hits="1"/>
+						<line number="11" hits="1"/>
 						<line number="14" hits="1"/>
 						<line number="15" hits="1"/>
 						<line number="16" hits="1"/>
@@ -229,86 +230,96 @@
 						<line number="205" hits="1"/>
 						<line number="206" hits="1"/>
 						<line number="207" hits="1"/>
-						<line number="209" hits="1"/>
-						<line number="210" hits="1"/>
+						<line number="212" hits="1"/>
 						<line number="213" hits="1"/>
-						<line number="214" hits="1"/>
-						<line number="215" hits="1"/>
-						<line number="217" hits="0"/>
+						<line number="216" hits="1"/>
+						<line number="217" hits="1"/>
+						<line number="218" hits="1"/>
 						<line number="220" hits="0"/>
-						<line number="221" hits="0"/>
-						<line number="222" hits="0"/>
+						<line number="223" hits="0"/>
+						<line number="224" hits="0"/>
 						<line number="225" hits="0"/>
-						<line number="230" hits="1"/>
-						<line number="231" hits="0"/>
+						<line number="228" hits="0"/>
+						<line number="231" hits="1"/>
 						<line number="232" hits="0"/>
 						<line number="233" hits="0"/>
 						<line number="234" hits="0"/>
-						<line number="236" hits="0"/>
+						<line number="235" hits="0"/>
 						<line number="237" hits="0"/>
-						<line number="240" hits="0"/>
+						<line number="238" hits="0"/>
 						<line number="241" hits="0"/>
 						<line number="242" hits="0"/>
 						<line number="243" hits="0"/>
 						<line number="244" hits="0"/>
-						<line number="246" hits="0"/>
+						<line number="245" hits="0"/>
 						<line number="247" hits="0"/>
 						<line number="248" hits="0"/>
 						<line number="249" hits="0"/>
-						<line number="252" hits="0"/>
+						<line number="250" hits="0"/>
 						<line number="253" hits="0"/>
-						<line number="255" hits="0"/>
+						<line number="254" hits="0"/>
 						<line number="256" hits="0"/>
-						<line number="261" hits="0"/>
+						<line number="257" hits="0"/>
 						<line number="262" hits="0"/>
 						<line number="263" hits="0"/>
 						<line number="264" hits="0"/>
 						<line number="265" hits="0"/>
 						<line number="266" hits="0"/>
-						<line number="268" hits="0"/>
+						<line number="267" hits="0"/>
 						<line number="269" hits="0"/>
 						<line number="270" hits="0"/>
-						<line number="273" hits="1"/>
-						<line number="274" hits="0"/>
+						<line number="271" hits="0"/>
+						<line number="274" hits="1"/>
 						<line number="275" hits="0"/>
 						<line number="276" hits="0"/>
 						<line number="277" hits="0"/>
-						<line number="280" hits="1"/>
+						<line number="278" hits="0"/>
 						<line number="281" hits="1"/>
 						<line number="282" hits="1"/>
 						<line number="283" hits="1"/>
-						<line number="285" hits="1"/>
-						<line number="286" hits="0"/>
+						<line number="284" hits="0"/>
+						<line number="286" hits="1"/>
 						<line number="287" hits="0"/>
 						<line number="288" hits="0"/>
 						<line number="289" hits="0"/>
-						<line number="291" hits="0"/>
-						<line number="294" hits="1"/>
-						<line number="302" hits="0"/>
+						<line number="290" hits="0"/>
+						<line number="292" hits="0"/>
+						<line number="295" hits="1"/>
 						<line number="303" hits="0"/>
 						<line number="304" hits="0"/>
 						<line number="305" hits="0"/>
 						<line number="306" hits="0"/>
 						<line number="307" hits="0"/>
-						<line number="309" hits="0"/>
+						<line number="308" hits="0"/>
 						<line number="310" hits="0"/>
 						<line number="311" hits="0"/>
-						<line number="316" hits="1"/>
+						<line number="312" hits="0"/>
 						<line number="317" hits="1"/>
 						<line number="318" hits="1"/>
 						<line number="319" hits="1"/>
-						<line number="329" hits="1"/>
-						<line number="332" hits="1"/>
-						<line number="335" hits="1"/>
+						<line number="320" hits="1"/>
+						<line number="330" hits="1"/>
+						<line number="333" hits="1"/>
 						<line number="336" hits="1"/>
-						<line number="338" hits="1"/>
-						<line number="339" hits="0"/>
+						<line number="337" hits="1"/>
+						<line number="339" hits="1"/>
 						<line number="340" hits="0"/>
-						<line number="342" hits="1"/>
+						<line number="341" hits="0"/>
 						<line number="343" hits="1"/>
+						<line number="344" hits="1"/>
+						<line number="347" hits="1"/>
+						<line number="349" hits="1"/>
+						<line number="350" hits="1"/>
+						<line number="351" hits="1"/>
+						<line number="352" hits="1"/>
+						<line number="353" hits="1"/>
+						<line number="354" hits="1"/>
+						<line number="355" hits="1"/>
+						<line number="357" hits="1"/>
+						<line number="358" hits="1"/>
 					</lines>
 				</class>
-				<class name="BasicModule.py" filename="BasicModule.py" complexity="0" line-rate="1" branch-rate="0">
+				<class name="BasicModule.py" filename="BasicModule.py" complexity="0" line-rate="0.9216" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -343,8 +354,8 @@
 						<line number="39" hits="1"/>
 						<line number="41" hits="1"/>
 						<line number="44" hits="1"/>
-						<line number="45" hits="1"/>
-						<line number="47" hits="1"/>
+						<line number="45" hits="0"/>
+						<line number="47" hits="0"/>
 						<line number="51" hits="1"/>
 						<line number="52" hits="1"/>
 						<line number="53" hits="1"/>
@@ -356,11 +367,15 @@
 						<line number="62" hits="1"/>
 						<line number="64" hits="1"/>
 						<line number="67" hits="1"/>
-						<line number="68" hits="1"/>
-						<line number="70" hits="1"/>
+						<line number="68" hits="0"/>
+						<line number="70" hits="0"/>
+						<line number="74" hits="1"/>
+						<line number="75" hits="1"/>
+						<line number="76" hits="1"/>
+						<line number="77" hits="1"/>
 					</lines>
 				</class>
-				<class name="BlurDetectionModule.py" filename="BlurDetectionModule.py" complexity="0" line-rate="0.9737" branch-rate="0">
+				<class name="BlurDetectionModule.py" filename="BlurDetectionModule.py" complexity="0" line-rate="0.9375" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -386,24 +401,18 @@
 						<line number="35" hits="1"/>
 						<line number="37" hits="1"/>
 						<line number="38" hits="1"/>
-						<line number="40" hits="1"/>
-						<line number="41" hits="1"/>
-						<line number="42" hits="1"/>
-						<line number="43" hits="1"/>
-						<line number="44" hits="1"/>
-						<line number="45" hits="1"/>
-						<line number="47" hits="0"/>
-						<line number="50" hits="1"/>
+						<line number="48" hits="1"/>
 						<line number="51" hits="1"/>
 						<line number="52" hits="1"/>
-						<line number="55" hits="1"/>
-						<line number="58" hits="1"/>
+						<line number="53" hits="1"/>
+						<line number="56" hits="1"/>
 						<line number="59" hits="1"/>
-						<line number="61" hits="1"/>
-						<line number="65" hits="1"/>
+						<line number="60" hits="0"/>
+						<line number="62" hits="0"/>
+						<line number="66" hits="1"/>
 					</lines>
 				</class>
-				<class name="BrightContrastModule.py" filename="BrightContrastModule.py" complexity="0" line-rate="1" branch-rate="0">
+				<class name="BrightContrastModule.py" filename="BrightContrastModule.py" complexity="0" line-rate="0.8933" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -424,7 +433,7 @@
 						<line number="22" hits="1"/>
 						<line number="24" hits="1"/>
 						<line number="25" hits="1"/>
-						<line number="26" hits="1"/>
+						<line number="26" hits="0"/>
 						<line number="28" hits="1"/>
 						<line number="29" hits="1"/>
 						<line number="31" hits="1"/>
@@ -447,7 +456,7 @@
 						<line number="58" hits="1"/>
 						<line number="59" hits="1"/>
 						<line number="61" hits="1"/>
-						<line number="62" hits="1"/>
+						<line number="62" hits="0"/>
 						<line number="64" hits="1"/>
 						<line number="65" hits="1"/>
 						<line number="67" hits="1"/>
@@ -466,12 +475,12 @@
 						<line number="90" hits="1"/>
 						<line number="91" hits="1"/>
 						<line number="93" hits="1"/>
-						<line number="96" hits="1"/>
-						<line number="97" hits="1"/>
-						<line number="98" hits="1"/>
-						<line number="101" hits="1"/>
-						<line number="103" hits="1"/>
-						<line number="106" hits="1"/>
+						<line number="96" hits="0"/>
+						<line number="97" hits="0"/>
+						<line number="98" hits="0"/>
+						<line number="101" hits="0"/>
+						<line number="103" hits="0"/>
+						<line number="106" hits="0"/>
 						<line number="110" hits="1"/>
 						<line number="111" hits="1"/>
 						<line number="114" hits="1"/>
@@ -565,27 +574,27 @@
 						<line number="127" hits="1"/>
 					</lines>
 				</class>
-				<class name="ClassificationModule.py" filename="ClassificationModule.py" complexity="0" line-rate="0.5808" branch-rate="0">
+				<class name="ClassificationModule.py" filename="ClassificationModule.py" complexity="0" line-rate="0" branch-rate="0">
 					<methods/>
 					<lines>
-						<line number="1" hits="1"/>
-						<line number="2" hits="1"/>
-						<line number="3" hits="1"/>
-						<line number="4" hits="1"/>
-						<line number="6" hits="1"/>
-						<line number="8" hits="1"/>
-						<line number="10" hits="1"/>
-						<line number="11" hits="1"/>
-						<line number="12" hits="1"/>
-						<line number="13" hits="1"/>
-						<line number="14" hits="1"/>
-						<line number="15" hits="1"/>
-						<line number="17" hits="1"/>
-						<line number="19" hits="1"/>
-						<line number="20" hits="1"/>
-						<line number="22" hits="1"/>
-						<line number="24" hits="1"/>
-						<line number="27" hits="1"/>
+						<line number="1" hits="0"/>
+						<line number="2" hits="0"/>
+						<line number="3" hits="0"/>
+						<line number="4" hits="0"/>
+						<line number="6" hits="0"/>
+						<line number="8" hits="0"/>
+						<line number="10" hits="0"/>
+						<line number="11" hits="0"/>
+						<line number="12" hits="0"/>
+						<line number="13" hits="0"/>
+						<line number="14" hits="0"/>
+						<line number="15" hits="0"/>
+						<line number="17" hits="0"/>
+						<line number="19" hits="0"/>
+						<line number="20" hits="0"/>
+						<line number="22" hits="0"/>
+						<line number="24" hits="0"/>
+						<line number="27" hits="0"/>
 						<line number="28" hits="0"/>
 						<line number="29" hits="0"/>
 						<line number="31" hits="0"/>
@@ -612,26 +621,26 @@
 						<line number="62" hits="0"/>
 						<line number="64" hits="0"/>
 						<line number="67" hits="0"/>
-						<line number="72" hits="1"/>
-						<line number="73" hits="1"/>
-						<line number="76" hits="1"/>
-						<line number="77" hits="1"/>
-						<line number="78" hits="1"/>
-						<line number="81" hits="1"/>
+						<line number="72" hits="0"/>
+						<line number="73" hits="0"/>
+						<line number="76" hits="0"/>
+						<line number="77" hits="0"/>
+						<line number="78" hits="0"/>
+						<line number="81" hits="0"/>
 						<line number="82" hits="0"/>
 						<line number="83" hits="0"/>
 						<line number="84" hits="0"/>
 						<line number="86" hits="0"/>
-						<line number="89" hits="1"/>
+						<line number="89" hits="0"/>
 						<line number="90" hits="0"/>
 						<line number="91" hits="0"/>
 						<line number="93" hits="0"/>
 						<line number="94" hits="0"/>
 						<line number="96" hits="0"/>
-						<line number="99" hits="1"/>
+						<line number="99" hits="0"/>
 						<line number="100" hits="0"/>
 						<line number="101" hits="0"/>
-						<line number="104" hits="1"/>
+						<line number="104" hits="0"/>
 						<line number="105" hits="0"/>
 						<line number="106" hits="0"/>
 						<line number="107" hits="0"/>
@@ -651,93 +660,93 @@
 						<line number="124" hits="0"/>
 						<line number="125" hits="0"/>
 						<line number="126" hits="0"/>
-						<line number="129" hits="1"/>
-						<line number="130" hits="1"/>
-						<line number="131" hits="1"/>
-						<line number="132" hits="1"/>
-						<line number="133" hits="1"/>
-						<line number="134" hits="1"/>
-						<line number="135" hits="1"/>
-						<line number="136" hits="1"/>
-						<line number="139" hits="1"/>
-						<line number="140" hits="1"/>
-						<line number="142" hits="1"/>
-						<line number="143" hits="1"/>
-						<line number="144" hits="1"/>
-						<line number="145" hits="1"/>
-						<line number="147" hits="1"/>
-						<line number="150" hits="1"/>
-						<line number="151" hits="1"/>
-						<line number="152" hits="1"/>
-						<line number="154" hits="1"/>
-						<line number="155" hits="1"/>
-						<line number="157" hits="1"/>
-						<line number="158" hits="1"/>
+						<line number="129" hits="0"/>
+						<line number="130" hits="0"/>
+						<line number="131" hits="0"/>
+						<line number="132" hits="0"/>
+						<line number="133" hits="0"/>
+						<line number="134" hits="0"/>
+						<line number="135" hits="0"/>
+						<line number="136" hits="0"/>
+						<line number="139" hits="0"/>
+						<line number="140" hits="0"/>
+						<line number="142" hits="0"/>
+						<line number="143" hits="0"/>
+						<line number="144" hits="0"/>
+						<line number="145" hits="0"/>
+						<line number="147" hits="0"/>
+						<line number="150" hits="0"/>
+						<line number="151" hits="0"/>
+						<line number="152" hits="0"/>
+						<line number="154" hits="0"/>
+						<line number="155" hits="0"/>
+						<line number="157" hits="0"/>
+						<line number="158" hits="0"/>
 						<line number="159" hits="0"/>
 						<line number="160" hits="0"/>
 						<line number="161" hits="0"/>
-						<line number="163" hits="1"/>
+						<line number="163" hits="0"/>
 						<line number="164" hits="0"/>
 						<line number="165" hits="0"/>
 						<line number="166" hits="0"/>
-						<line number="168" hits="1"/>
-						<line number="170" hits="1"/>
-						<line number="171" hits="1"/>
-						<line number="173" hits="1"/>
-						<line number="174" hits="1"/>
-						<line number="176" hits="1"/>
-						<line number="177" hits="1"/>
-						<line number="178" hits="1"/>
-						<line number="179" hits="1"/>
-						<line number="180" hits="1"/>
-						<line number="183" hits="1"/>
-						<line number="185" hits="1"/>
-						<line number="187" hits="1"/>
-						<line number="188" hits="1"/>
-						<line number="189" hits="1"/>
-						<line number="191" hits="1"/>
-						<line number="193" hits="1"/>
-						<line number="195" hits="1"/>
+						<line number="168" hits="0"/>
+						<line number="170" hits="0"/>
+						<line number="171" hits="0"/>
+						<line number="173" hits="0"/>
+						<line number="174" hits="0"/>
+						<line number="176" hits="0"/>
+						<line number="177" hits="0"/>
+						<line number="178" hits="0"/>
+						<line number="179" hits="0"/>
+						<line number="180" hits="0"/>
+						<line number="183" hits="0"/>
+						<line number="185" hits="0"/>
+						<line number="187" hits="0"/>
+						<line number="188" hits="0"/>
+						<line number="189" hits="0"/>
+						<line number="191" hits="0"/>
+						<line number="193" hits="0"/>
+						<line number="195" hits="0"/>
 						<line number="196" hits="0"/>
 						<line number="199" hits="0"/>
 						<line number="200" hits="0"/>
 						<line number="202" hits="0"/>
 						<line number="203" hits="0"/>
 						<line number="204" hits="0"/>
-						<line number="207" hits="1"/>
-						<line number="208" hits="1"/>
-						<line number="211" hits="1"/>
-						<line number="212" hits="1"/>
-						<line number="213" hits="1"/>
-						<line number="214" hits="1"/>
-						<line number="215" hits="1"/>
-						<line number="217" hits="1"/>
-						<line number="218" hits="1"/>
-						<line number="219" hits="1"/>
-						<line number="220" hits="1"/>
-						<line number="221" hits="1"/>
-						<line number="223" hits="1"/>
-						<line number="225" hits="1"/>
-						<line number="226" hits="1"/>
-						<line number="227" hits="1"/>
-						<line number="229" hits="1"/>
-						<line number="230" hits="1"/>
-						<line number="231" hits="1"/>
-						<line number="233" hits="1"/>
-						<line number="235" hits="1"/>
-						<line number="236" hits="1"/>
-						<line number="237" hits="1"/>
-						<line number="238" hits="1"/>
-						<line number="240" hits="1"/>
-						<line number="243" hits="1"/>
+						<line number="207" hits="0"/>
+						<line number="208" hits="0"/>
+						<line number="211" hits="0"/>
+						<line number="212" hits="0"/>
+						<line number="213" hits="0"/>
+						<line number="214" hits="0"/>
+						<line number="215" hits="0"/>
+						<line number="217" hits="0"/>
+						<line number="218" hits="0"/>
+						<line number="219" hits="0"/>
+						<line number="220" hits="0"/>
+						<line number="221" hits="0"/>
+						<line number="223" hits="0"/>
+						<line number="225" hits="0"/>
+						<line number="226" hits="0"/>
+						<line number="227" hits="0"/>
+						<line number="229" hits="0"/>
+						<line number="230" hits="0"/>
+						<line number="231" hits="0"/>
+						<line number="233" hits="0"/>
+						<line number="235" hits="0"/>
+						<line number="236" hits="0"/>
+						<line number="237" hits="0"/>
+						<line number="238" hits="0"/>
+						<line number="240" hits="0"/>
+						<line number="243" hits="0"/>
 						<line number="244" hits="0"/>
 						<line number="246" hits="0"/>
-						<line number="249" hits="1"/>
-						<line number="250" hits="1"/>
-						<line number="252" hits="1"/>
+						<line number="249" hits="0"/>
+						<line number="250" hits="0"/>
+						<line number="252" hits="0"/>
 					</lines>
 				</class>
-				<class name="DeconvolutionModule.py" filename="DeconvolutionModule.py" complexity="0" line-rate="0.7925" branch-rate="0">
+				<class name="DeconvolutionModule.py" filename="DeconvolutionModule.py" complexity="0" line-rate="0.6604" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -766,13 +775,13 @@
 						<line number="31" hits="0"/>
 						<line number="33" hits="1"/>
 						<line number="35" hits="1"/>
-						<line number="36" hits="1"/>
-						<line number="37" hits="1"/>
-						<line number="38" hits="1"/>
-						<line number="39" hits="1"/>
-						<line number="41" hits="1"/>
-						<line number="43" hits="1"/>
-						<line number="46" hits="1"/>
+						<line number="36" hits="0"/>
+						<line number="37" hits="0"/>
+						<line number="38" hits="0"/>
+						<line number="39" hits="0"/>
+						<line number="41" hits="0"/>
+						<line number="43" hits="0"/>
+						<line number="46" hits="0"/>
 						<line number="48" hits="1"/>
 						<line number="49" hits="1"/>
 						<line number="51" hits="1"/>
@@ -795,7 +804,7 @@
 						<line number="76" hits="1"/>
 					</lines>
 				</class>
-				<class name="HistogramModule.py" filename="HistogramModule.py" complexity="0" line-rate="0.963" branch-rate="0">
+				<class name="HistogramModule.py" filename="HistogramModule.py" complexity="0" line-rate="0.9074" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -843,9 +852,9 @@
 						<line number="59" hits="1"/>
 						<line number="60" hits="1"/>
 						<line number="61" hits="1"/>
-						<line number="63" hits="1"/>
-						<line number="65" hits="1"/>
-						<line number="68" hits="1"/>
+						<line number="63" hits="0"/>
+						<line number="65" hits="0"/>
+						<line number="68" hits="0"/>
 						<line number="71" hits="1"/>
 						<line number="73" hits="0"/>
 						<line number="75" hits="1"/>
@@ -962,7 +971,7 @@
 						<line number="188" hits="1"/>
 					</lines>
 				</class>
-				<class name="LocalTextureEstimationModule.py" filename="LocalTextureEstimationModule.py" complexity="0" line-rate="1" branch-rate="0">
+				<class name="LocalTextureEstimationModule.py" filename="LocalTextureEstimationModule.py" complexity="0" line-rate="0.9" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -987,22 +996,27 @@
 						<line number="28" hits="1"/>
 						<line number="30" hits="1"/>
 						<line number="31" hits="1"/>
-						<line number="32" hits="1"/>
-						<line number="33" hits="1"/>
-						<line number="35" hits="1"/>
+						<line number="32" hits="0"/>
+						<line number="33" hits="0"/>
+						<line number="34" hits="0"/>
+						<line number="35" hits="0"/>
 						<line number="37" hits="1"/>
 						<line number="38" hits="1"/>
 						<line number="39" hits="1"/>
-						<line number="40" hits="1"/>
+						<line number="41" hits="1"/>
 						<line number="43" hits="1"/>
+						<line number="44" hits="1"/>
 						<line number="45" hits="1"/>
-						<line number="47" hits="1"/>
-						<line number="48" hits="1"/>
+						<line number="46" hits="1"/>
 						<line number="49" hits="1"/>
 						<line number="51" hits="1"/>
+						<line number="53" hits="1"/>
+						<line number="54" hits="1"/>
+						<line number="55" hits="1"/>
+						<line number="57" hits="1"/>
 					</lines>
 				</class>
-				<class name="MorphologyModule.py" filename="MorphologyModule.py" complexity="0" line-rate="0.8737" branch-rate="0">
+				<class name="MorphologyModule.py" filename="MorphologyModule.py" complexity="0" line-rate="0.9221" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -1022,87 +1036,189 @@
 						<line number="20" hits="1"/>
 						<line number="22" hits="1"/>
 						<line number="23" hits="1"/>
-						<line number="26" hits="1"/>
-						<line number="27" hits="1"/>
-						<line number="28" hits="1"/>
-						<line number="29" hits="1"/>
-						<line number="30" hits="1"/>
-						<line number="31" hits="1"/>
-						<line number="33" hits="0"/>
-						<line number="35" hits="1"/>
-						<line number="36" hits="1"/>
-						<line number="37" hits="1"/>
-						<line number="43" hits="1"/>
+						<line number="34" hits="1"/>
+						<line number="40" hits="1"/>
+						<line number="41" hits="1"/>
+						<line number="42" hits="1"/>
 						<line number="47" hits="1"/>
-						<line number="48" hits="0"/>
-						<line number="50" hits="0"/>
-						<line number="53" hits="1"/>
-						<line number="56" hits="1"/>
-						<line number="58" hits="1"/>
-						<line number="59" hits="1"/>
+						<line number="51" hits="1"/>
+						<line number="52" hits="0"/>
+						<line number="54" hits="0"/>
+						<line number="57" hits="1"/>
 						<line number="60" hits="1"/>
-						<line number="61" hits="1"/>
 						<line number="62" hits="1"/>
 						<line number="63" hits="1"/>
 						<line number="64" hits="1"/>
 						<line number="65" hits="1"/>
 						<line number="66" hits="1"/>
+						<line number="67" hits="1"/>
+						<line number="68" hits="1"/>
 						<line number="69" hits="1"/>
 						<line number="70" hits="1"/>
-						<line number="71" hits="1"/>
-						<line number="72" hits="1"/>
 						<line number="73" hits="1"/>
+						<line number="74" hits="1"/>
 						<line number="75" hits="1"/>
 						<line number="76" hits="1"/>
 						<line number="77" hits="1"/>
 						<line number="79" hits="1"/>
 						<line number="80" hits="1"/>
-						<line number="82" hits="1"/>
+						<line number="81" hits="1"/>
+						<line number="83" hits="1"/>
 						<line number="84" hits="1"/>
-						<line number="85" hits="1"/>
-						<line number="87" hits="1"/>
+						<line number="86" hits="1"/>
 						<line number="88" hits="1"/>
-						<line number="90" hits="1"/>
+						<line number="89" hits="1"/>
 						<line number="91" hits="1"/>
-						<line number="92" hits="0"/>
-						<line number="93" hits="0"/>
-						<line number="94" hits="0"/>
-						<line number="95" hits="0"/>
-						<line number="97" hits="1"/>
-						<line number="99" hits="1"/>
-						<line number="100" hits="1"/>
-						<line number="101" hits="1"/>
-						<line number="105" hits="1"/>
+						<line number="92" hits="1"/>
+						<line number="102" hits="1"/>
+						<line number="107" hits="1"/>
 						<line number="108" hits="1"/>
-						<line number="109" hits="0"/>
-						<line number="111" hits="0"/>
-						<line number="115" hits="1"/>
+						<line number="109" hits="1"/>
+						<line number="113" hits="1"/>
 						<line number="116" hits="1"/>
-						<line number="117" hits="1"/>
-						<line number="118" hits="1"/>
-						<line number="119" hits="1"/>
-						<line number="122" hits="1"/>
+						<line number="117" hits="0"/>
+						<line number="119" hits="0"/>
 						<line number="123" hits="1"/>
+						<line number="124" hits="1"/>
 						<line number="125" hits="1"/>
 						<line number="126" hits="1"/>
-						<line number="128" hits="1"/>
-						<line number="129" hits="1"/>
+						<line number="127" hits="1"/>
 						<line number="130" hits="1"/>
 						<line number="131" hits="1"/>
-						<line number="132" hits="1"/>
 						<line number="133" hits="1"/>
-						<line number="135" hits="0"/>
-						<line number="137" hits="1"/>
-						<line number="138" hits="1"/>
-						<line number="139" hits="1"/>
-						<line number="141" hits="1"/>
+						<line number="134" hits="1"/>
 						<line number="144" hits="1"/>
+						<line number="149" hits="1"/>
+						<line number="150" hits="1"/>
+						<line number="151" hits="1"/>
+						<line number="153" hits="1"/>
+						<line number="156" hits="1"/>
+						<line number="157" hits="0"/>
+						<line number="159" hits="0"/>
+						<line number="161" hits="1"/>
+					</lines>
+				</class>
+				<class name="SaveModule-geojson.py" filename="SaveModule-geojson.py" complexity="0" line-rate="0" branch-rate="0">
+					<methods/>
+					<lines>
+						<line number="1" hits="0"/>
+						<line number="2" hits="0"/>
+						<line number="3" hits="0"/>
+						<line number="4" hits="0"/>
+						<line number="5" hits="0"/>
+						<line number="6" hits="0"/>
+						<line number="7" hits="0"/>
+						<line number="8" hits="0"/>
+						<line number="9" hits="0"/>
+						<line number="11" hits="0"/>
+						<line number="12" hits="0"/>
+						<line number="13" hits="0"/>
+						<line number="14" hits="0"/>
+						<line number="15" hits="0"/>
+						<line number="16" hits="0"/>
+						<line number="17" hits="0"/>
+						<line number="18" hits="0"/>
+						<line number="19" hits="0"/>
+						<line number="26" hits="0"/>
+						<line number="38" hits="0"/>
+						<line number="49" hits="0"/>
+						<line number="51" hits="0"/>
+						<line number="53" hits="0"/>
+						<line number="56" hits="0"/>
+						<line number="59" hits="0"/>
+						<line number="61" hits="0"/>
+						<line number="63" hits="0"/>
+						<line number="64" hits="0"/>
+						<line number="65" hits="0"/>
+						<line number="66" hits="0"/>
+						<line number="69" hits="0"/>
+						<line number="71" hits="0"/>
+						<line number="72" hits="0"/>
+						<line number="73" hits="0"/>
+						<line number="75" hits="0"/>
+						<line number="77" hits="0"/>
+						<line number="79" hits="0"/>
+						<line number="82" hits="0"/>
+						<line number="86" hits="0"/>
+						<line number="88" hits="0"/>
+						<line number="89" hits="0"/>
+						<line number="90" hits="0"/>
+						<line number="91" hits="0"/>
+						<line number="93" hits="0"/>
+						<line number="94" hits="0"/>
+						<line number="97" hits="0"/>
+						<line number="98" hits="0"/>
+						<line number="100" hits="0"/>
+						<line number="113" hits="0"/>
+						<line number="115" hits="0"/>
+						<line number="116" hits="0"/>
+						<line number="118" hits="0"/>
+						<line number="121" hits="0"/>
+						<line number="122" hits="0"/>
+						<line number="124" hits="0"/>
+						<line number="125" hits="0"/>
+						<line number="126" hits="0"/>
+						<line number="128" hits="0"/>
+						<line number="131" hits="0"/>
+						<line number="132" hits="0"/>
+						<line number="133" hits="0"/>
+						<line number="134" hits="0"/>
+						<line number="136" hits="0"/>
+						<line number="139" hits="0"/>
+						<line number="140" hits="0"/>
+						<line number="141" hits="0"/>
+						<line number="143" hits="0"/>
+						<line number="144" hits="0"/>
 						<line number="145" hits="0"/>
+						<line number="146" hits="0"/>
 						<line number="147" hits="0"/>
-						<line number="149" hits="1"/>
+						<line number="150" hits="0"/>
+						<line number="151" hits="0"/>
+						<line number="154" hits="0"/>
+						<line number="155" hits="0"/>
+						<line number="156" hits="0"/>
+						<line number="158" hits="0"/>
+						<line number="159" hits="0"/>
+						<line number="161" hits="0"/>
+						<line number="162" hits="0"/>
+						<line number="163" hits="0"/>
+						<line number="165" hits="0"/>
+						<line number="166" hits="0"/>
+						<line number="167" hits="0"/>
+						<line number="168" hits="0"/>
+						<line number="170" hits="0"/>
+						<line number="171" hits="0"/>
+						<line number="172" hits="0"/>
+						<line number="174" hits="0"/>
+						<line number="175" hits="0"/>
+						<line number="176" hits="0"/>
+						<line number="177" hits="0"/>
+						<line number="180" hits="0"/>
+						<line number="183" hits="0"/>
+						<line number="185" hits="0"/>
+						<line number="186" hits="0"/>
+						<line number="187" hits="0"/>
+						<line number="189" hits="0"/>
+						<line number="190" hits="0"/>
+						<line number="191" hits="0"/>
+						<line number="192" hits="0"/>
+						<line number="195" hits="0"/>
+						<line number="196" hits="0"/>
+						<line number="197" hits="0"/>
+						<line number="198" hits="0"/>
+						<line number="200" hits="0"/>
+						<line number="203" hits="0"/>
+						<line number="204" hits="0"/>
+						<line number="208" hits="0"/>
+						<line number="209" hits="0"/>
+						<line number="211" hits="0"/>
+						<line number="212" hits="0"/>
+						<line number="214" hits="0"/>
+						<line number="215" hits="0"/>
+						<line number="216" hits="0"/>
 					</lines>
 				</class>
-				<class name="SaveModule.py" filename="SaveModule.py" complexity="0" line-rate="0.8438" branch-rate="0">
+				<class name="SaveModule.py" filename="SaveModule.py" complexity="0" line-rate="0.7031" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -1125,7 +1241,7 @@
 						<line number="23" hits="1"/>
 						<line number="25" hits="1"/>
 						<line number="26" hits="1"/>
-						<line number="27" hits="1"/>
+						<line number="27" hits="0"/>
 						<line number="29" hits="1"/>
 						<line number="31" hits="1"/>
 						<line number="32" hits="1"/>
@@ -1140,16 +1256,16 @@
 						<line number="45" hits="1"/>
 						<line number="46" hits="1"/>
 						<line number="47" hits="1"/>
-						<line number="50" hits="1"/>
-						<line number="51" hits="1"/>
-						<line number="54" hits="1"/>
-						<line number="55" hits="1"/>
-						<line number="56" hits="1"/>
+						<line number="50" hits="0"/>
+						<line number="51" hits="0"/>
+						<line number="54" hits="0"/>
+						<line number="55" hits="0"/>
+						<line number="56" hits="0"/>
 						<line number="58" hits="0"/>
 						<line number="59" hits="0"/>
-						<line number="61" hits="1"/>
-						<line number="62" hits="1"/>
-						<line number="63" hits="1"/>
+						<line number="61" hits="0"/>
+						<line number="62" hits="0"/>
+						<line number="63" hits="0"/>
 						<line number="65" hits="1"/>
 						<line number="66" hits="1"/>
 						<line number="67" hits="1"/>
@@ -1171,245 +1287,245 @@
 						<line number="91" hits="1"/>
 					</lines>
 				</class>
-				<class name="TileExtractionModule.py" filename="TileExtractionModule.py" complexity="0" line-rate="0.9746" branch-rate="0">
+				<class name="TileExtractionModule.py" filename="TileExtractionModule.py" complexity="0" line-rate="0" branch-rate="0">
 					<methods/>
 					<lines>
-						<line number="6" hits="1"/>
-						<line number="7" hits="1"/>
-						<line number="8" hits="1"/>
-						<line number="9" hits="1"/>
-						<line number="10" hits="1"/>
-						<line number="11" hits="1"/>
-						<line number="12" hits="1"/>
-						<line number="13" hits="1"/>
-						<line number="14" hits="1"/>
-						<line number="15" hits="1"/>
-						<line number="16" hits="1"/>
-						<line number="17" hits="1"/>
-						<line number="23" hits="1"/>
-						<line number="24" hits="1"/>
-						<line number="25" hits="1"/>
-						<line number="26" hits="1"/>
-						<line number="27" hits="1"/>
-						<line number="28" hits="1"/>
-						<line number="29" hits="1"/>
-						<line number="30" hits="1"/>
-						<line number="31" hits="1"/>
-						<line number="32" hits="1"/>
-						<line number="37" hits="1"/>
-						<line number="38" hits="1"/>
-						<line number="41" hits="1"/>
-						<line number="42" hits="1"/>
-						<line number="45" hits="1"/>
-						<line number="51" hits="1"/>
-						<line number="52" hits="1"/>
-						<line number="53" hits="1"/>
-						<line number="54" hits="1"/>
-						<line number="57" hits="1"/>
-						<line number="58" hits="1"/>
-						<line number="60" hits="1"/>
-						<line number="61" hits="1"/>
-						<line number="62" hits="1"/>
-						<line number="64" hits="1"/>
-						<line number="65" hits="1"/>
-						<line number="66" hits="1"/>
-						<line number="68" hits="1"/>
-						<line number="69" hits="1"/>
-						<line number="75" hits="1"/>
-						<line number="76" hits="1"/>
-						<line number="77" hits="1"/>
-						<line number="78" hits="1"/>
-						<line number="80" hits="1"/>
-						<line number="81" hits="1"/>
-						<line number="83" hits="1"/>
-						<line number="93" hits="1"/>
-						<line number="94" hits="1"/>
-						<line number="95" hits="1"/>
-						<line number="96" hits="1"/>
-						<line number="97" hits="1"/>
-						<line number="99" hits="1"/>
-						<line number="100" hits="1"/>
-						<line number="114" hits="1"/>
-						<line number="116" hits="1"/>
-						<line number="117" hits="1"/>
-						<line number="119" hits="1"/>
-						<line number="120" hits="1"/>
-						<line number="121" hits="1"/>
-						<line number="123" hits="1"/>
-						<line number="124" hits="1"/>
-						<line number="141" hits="1"/>
-						<line number="144" hits="1"/>
-						<line number="145" hits="1"/>
-						<line number="160" hits="1"/>
-						<line number="162" hits="1"/>
-						<line number="166" hits="1"/>
-						<line number="167" hits="1"/>
-						<line number="170" hits="1"/>
-						<line number="172" hits="1"/>
-						<line number="173" hits="1"/>
-						<line number="175" hits="1"/>
-						<line number="176" hits="1"/>
-						<line number="195" hits="1"/>
-						<line number="196" hits="1"/>
-						<line number="198" hits="1"/>
-						<line number="207" hits="1"/>
-						<line number="209" hits="1"/>
-						<line number="211" hits="1"/>
-						<line number="214" hits="1"/>
-						<line number="220" hits="1"/>
-						<line number="221" hits="1"/>
-						<line number="223" hits="1"/>
-						<line number="224" hits="1"/>
-						<line number="229" hits="1"/>
-						<line number="230" hits="1"/>
-						<line number="231" hits="1"/>
-						<line number="233" hits="1"/>
-						<line number="234" hits="1"/>
-						<line number="240" hits="1"/>
-						<line number="241" hits="1"/>
-						<line number="243" hits="1"/>
-						<line number="245" hits="1"/>
-						<line number="246" hits="1"/>
-						<line number="259" hits="1"/>
-						<line number="260" hits="1"/>
-						<line number="265" hits="1"/>
-						<line number="267" hits="1"/>
-						<line number="268" hits="1"/>
-						<line number="269" hits="1"/>
-						<line number="270" hits="1"/>
-						<line number="272" hits="1"/>
-						<line number="275" hits="1"/>
-						<line number="278" hits="1"/>
-						<line number="280" hits="1"/>
-						<line number="281" hits="1"/>
-						<line number="292" hits="1"/>
-						<line number="293" hits="1"/>
-						<line number="295" hits="1"/>
-						<line number="296" hits="1"/>
-						<line number="306" hits="1"/>
-						<line number="315" hits="1"/>
-						<line number="316" hits="1"/>
-						<line number="319" hits="1"/>
-						<line number="321" hits="1"/>
-						<line number="323" hits="1"/>
-						<line number="324" hits="1"/>
-						<line number="325" hits="1"/>
-						<line number="326" hits="1"/>
-						<line number="328" hits="1"/>
-						<line number="329" hits="1"/>
-						<line number="347" hits="1"/>
-						<line number="350" hits="1"/>
-						<line number="351" hits="1"/>
-						<line number="354" hits="1"/>
-						<line number="355" hits="1"/>
-						<line number="356" hits="1"/>
-						<line number="357" hits="1"/>
-						<line number="358" hits="1"/>
+						<line number="6" hits="0"/>
+						<line number="7" hits="0"/>
+						<line number="8" hits="0"/>
+						<line number="9" hits="0"/>
+						<line number="10" hits="0"/>
+						<line number="11" hits="0"/>
+						<line number="12" hits="0"/>
+						<line number="13" hits="0"/>
+						<line number="14" hits="0"/>
+						<line number="15" hits="0"/>
+						<line number="16" hits="0"/>
+						<line number="17" hits="0"/>
+						<line number="23" hits="0"/>
+						<line number="24" hits="0"/>
+						<line number="25" hits="0"/>
+						<line number="26" hits="0"/>
+						<line number="27" hits="0"/>
+						<line number="28" hits="0"/>
+						<line number="29" hits="0"/>
+						<line number="30" hits="0"/>
+						<line number="31" hits="0"/>
+						<line number="32" hits="0"/>
+						<line number="37" hits="0"/>
+						<line number="38" hits="0"/>
+						<line number="41" hits="0"/>
+						<line number="42" hits="0"/>
+						<line number="45" hits="0"/>
+						<line number="51" hits="0"/>
+						<line number="52" hits="0"/>
+						<line number="53" hits="0"/>
+						<line number="54" hits="0"/>
+						<line number="57" hits="0"/>
+						<line number="58" hits="0"/>
+						<line number="60" hits="0"/>
+						<line number="61" hits="0"/>
+						<line number="62" hits="0"/>
+						<line number="64" hits="0"/>
+						<line number="65" hits="0"/>
+						<line number="66" hits="0"/>
+						<line number="68" hits="0"/>
+						<line number="69" hits="0"/>
+						<line number="75" hits="0"/>
+						<line number="76" hits="0"/>
+						<line number="77" hits="0"/>
+						<line number="78" hits="0"/>
+						<line number="80" hits="0"/>
+						<line number="81" hits="0"/>
+						<line number="83" hits="0"/>
+						<line number="93" hits="0"/>
+						<line number="94" hits="0"/>
+						<line number="95" hits="0"/>
+						<line number="96" hits="0"/>
+						<line number="97" hits="0"/>
+						<line number="99" hits="0"/>
+						<line number="100" hits="0"/>
+						<line number="114" hits="0"/>
+						<line number="116" hits="0"/>
+						<line number="117" hits="0"/>
+						<line number="119" hits="0"/>
+						<line number="120" hits="0"/>
+						<line number="121" hits="0"/>
+						<line number="123" hits="0"/>
+						<line number="124" hits="0"/>
+						<line number="141" hits="0"/>
+						<line number="144" hits="0"/>
+						<line number="145" hits="0"/>
+						<line number="160" hits="0"/>
+						<line number="162" hits="0"/>
+						<line number="166" hits="0"/>
+						<line number="167" hits="0"/>
+						<line number="170" hits="0"/>
+						<line number="172" hits="0"/>
+						<line number="173" hits="0"/>
+						<line number="175" hits="0"/>
+						<line number="176" hits="0"/>
+						<line number="195" hits="0"/>
+						<line number="196" hits="0"/>
+						<line number="198" hits="0"/>
+						<line number="207" hits="0"/>
+						<line number="209" hits="0"/>
+						<line number="211" hits="0"/>
+						<line number="214" hits="0"/>
+						<line number="220" hits="0"/>
+						<line number="221" hits="0"/>
+						<line number="223" hits="0"/>
+						<line number="224" hits="0"/>
+						<line number="229" hits="0"/>
+						<line number="230" hits="0"/>
+						<line number="231" hits="0"/>
+						<line number="233" hits="0"/>
+						<line number="234" hits="0"/>
+						<line number="240" hits="0"/>
+						<line number="241" hits="0"/>
+						<line number="243" hits="0"/>
+						<line number="245" hits="0"/>
+						<line number="246" hits="0"/>
+						<line number="259" hits="0"/>
+						<line number="260" hits="0"/>
+						<line number="265" hits="0"/>
+						<line number="267" hits="0"/>
+						<line number="268" hits="0"/>
+						<line number="269" hits="0"/>
+						<line number="270" hits="0"/>
+						<line number="272" hits="0"/>
+						<line number="275" hits="0"/>
+						<line number="278" hits="0"/>
+						<line number="280" hits="0"/>
+						<line number="281" hits="0"/>
+						<line number="292" hits="0"/>
+						<line number="293" hits="0"/>
+						<line number="295" hits="0"/>
+						<line number="296" hits="0"/>
+						<line number="306" hits="0"/>
+						<line number="315" hits="0"/>
+						<line number="316" hits="0"/>
+						<line number="319" hits="0"/>
+						<line number="321" hits="0"/>
+						<line number="323" hits="0"/>
+						<line number="324" hits="0"/>
+						<line number="325" hits="0"/>
+						<line number="326" hits="0"/>
+						<line number="328" hits="0"/>
+						<line number="329" hits="0"/>
+						<line number="347" hits="0"/>
+						<line number="350" hits="0"/>
+						<line number="351" hits="0"/>
+						<line number="354" hits="0"/>
+						<line number="355" hits="0"/>
+						<line number="356" hits="0"/>
+						<line number="357" hits="0"/>
+						<line number="358" hits="0"/>
 						<line number="359" hits="0"/>
-						<line number="361" hits="1"/>
-						<line number="362" hits="1"/>
-						<line number="363" hits="1"/>
-						<line number="364" hits="1"/>
-						<line number="368" hits="1"/>
-						<line number="386" hits="1"/>
-						<line number="392" hits="1"/>
-						<line number="393" hits="1"/>
-						<line number="394" hits="1"/>
-						<line number="395" hits="1"/>
-						<line number="397" hits="1"/>
-						<line number="400" hits="1"/>
-						<line number="402" hits="1"/>
-						<line number="404" hits="1"/>
-						<line number="405" hits="1"/>
-						<line number="406" hits="1"/>
-						<line number="408" hits="1"/>
-						<line number="409" hits="1"/>
-						<line number="424" hits="1"/>
-						<line number="425" hits="1"/>
-						<line number="426" hits="1"/>
-						<line number="427" hits="1"/>
-						<line number="428" hits="1"/>
-						<line number="430" hits="1"/>
-						<line number="431" hits="1"/>
-						<line number="432" hits="1"/>
-						<line number="434" hits="1"/>
-						<line number="436" hits="1"/>
-						<line number="446" hits="1"/>
-						<line number="449" hits="1"/>
-						<line number="451" hits="1"/>
-						<line number="455" hits="1"/>
-						<line number="456" hits="1"/>
-						<line number="459" hits="1"/>
-						<line number="460" hits="1"/>
-						<line number="468" hits="1"/>
-						<line number="470" hits="1"/>
-						<line number="471" hits="1"/>
-						<line number="472" hits="1"/>
-						<line number="473" hits="1"/>
-						<line number="475" hits="1"/>
-						<line number="476" hits="1"/>
-						<line number="477" hits="1"/>
-						<line number="478" hits="1"/>
-						<line number="479" hits="1"/>
-						<line number="481" hits="1"/>
-						<line number="482" hits="1"/>
-						<line number="501" hits="1"/>
-						<line number="503" hits="1"/>
-						<line number="505" hits="1"/>
-						<line number="507" hits="1"/>
-						<line number="508" hits="1"/>
-						<line number="513" hits="1"/>
+						<line number="361" hits="0"/>
+						<line number="362" hits="0"/>
+						<line number="363" hits="0"/>
+						<line number="364" hits="0"/>
+						<line number="368" hits="0"/>
+						<line number="386" hits="0"/>
+						<line number="392" hits="0"/>
+						<line number="393" hits="0"/>
+						<line number="394" hits="0"/>
+						<line number="395" hits="0"/>
+						<line number="397" hits="0"/>
+						<line number="400" hits="0"/>
+						<line number="402" hits="0"/>
+						<line number="404" hits="0"/>
+						<line number="405" hits="0"/>
+						<line number="406" hits="0"/>
+						<line number="408" hits="0"/>
+						<line number="409" hits="0"/>
+						<line number="424" hits="0"/>
+						<line number="425" hits="0"/>
+						<line number="426" hits="0"/>
+						<line number="427" hits="0"/>
+						<line number="428" hits="0"/>
+						<line number="430" hits="0"/>
+						<line number="431" hits="0"/>
+						<line number="432" hits="0"/>
+						<line number="434" hits="0"/>
+						<line number="436" hits="0"/>
+						<line number="446" hits="0"/>
+						<line number="449" hits="0"/>
+						<line number="451" hits="0"/>
+						<line number="455" hits="0"/>
+						<line number="456" hits="0"/>
+						<line number="459" hits="0"/>
+						<line number="460" hits="0"/>
+						<line number="468" hits="0"/>
+						<line number="470" hits="0"/>
+						<line number="471" hits="0"/>
+						<line number="472" hits="0"/>
+						<line number="473" hits="0"/>
+						<line number="475" hits="0"/>
+						<line number="476" hits="0"/>
+						<line number="477" hits="0"/>
+						<line number="478" hits="0"/>
+						<line number="479" hits="0"/>
+						<line number="481" hits="0"/>
+						<line number="482" hits="0"/>
+						<line number="501" hits="0"/>
+						<line number="503" hits="0"/>
+						<line number="505" hits="0"/>
+						<line number="507" hits="0"/>
+						<line number="508" hits="0"/>
+						<line number="513" hits="0"/>
 						<line number="514" hits="0"/>
 						<line number="515" hits="0"/>
 						<line number="516" hits="0"/>
 						<line number="517" hits="0"/>
-						<line number="519" hits="1"/>
-						<line number="532" hits="1"/>
-						<line number="534" hits="1"/>
-						<line number="535" hits="1"/>
-						<line number="536" hits="1"/>
-						<line number="537" hits="1"/>
-						<line number="539" hits="1"/>
-						<line number="540" hits="1"/>
-						<line number="543" hits="1"/>
-						<line number="544" hits="1"/>
-						<line number="545" hits="1"/>
-						<line number="546" hits="1"/>
-						<line number="547" hits="1"/>
+						<line number="519" hits="0"/>
+						<line number="532" hits="0"/>
+						<line number="534" hits="0"/>
+						<line number="535" hits="0"/>
+						<line number="536" hits="0"/>
+						<line number="537" hits="0"/>
+						<line number="539" hits="0"/>
+						<line number="540" hits="0"/>
+						<line number="543" hits="0"/>
+						<line number="544" hits="0"/>
+						<line number="545" hits="0"/>
+						<line number="546" hits="0"/>
+						<line number="547" hits="0"/>
 						<line number="548" hits="0"/>
-						<line number="549" hits="1"/>
-						<line number="551" hits="1"/>
-						<line number="553" hits="1"/>
-						<line number="554" hits="1"/>
-						<line number="555" hits="1"/>
-						<line number="558" hits="1"/>
-						<line number="559" hits="1"/>
-						<line number="560" hits="1"/>
-						<line number="561" hits="1"/>
-						<line number="562" hits="1"/>
-						<line number="563" hits="1"/>
-						<line number="564" hits="1"/>
-						<line number="566" hits="1"/>
-						<line number="567" hits="1"/>
-						<line number="568" hits="1"/>
-						<line number="569" hits="1"/>
-						<line number="570" hits="1"/>
-						<line number="571" hits="1"/>
-						<line number="572" hits="1"/>
-						<line number="574" hits="1"/>
-						<line number="575" hits="1"/>
-						<line number="576" hits="1"/>
-						<line number="577" hits="1"/>
-						<line number="579" hits="1"/>
-						<line number="582" hits="1"/>
-						<line number="584" hits="1"/>
-						<line number="597" hits="1"/>
-						<line number="598" hits="1"/>
-						<line number="606" hits="1"/>
-						<line number="607" hits="1"/>
-						<line number="608" hits="1"/>
-						<line number="609" hits="1"/>
-						<line number="610" hits="1"/>
+						<line number="549" hits="0"/>
+						<line number="551" hits="0"/>
+						<line number="553" hits="0"/>
+						<line number="554" hits="0"/>
+						<line number="555" hits="0"/>
+						<line number="558" hits="0"/>
+						<line number="559" hits="0"/>
+						<line number="560" hits="0"/>
+						<line number="561" hits="0"/>
+						<line number="562" hits="0"/>
+						<line number="563" hits="0"/>
+						<line number="564" hits="0"/>
+						<line number="566" hits="0"/>
+						<line number="567" hits="0"/>
+						<line number="568" hits="0"/>
+						<line number="569" hits="0"/>
+						<line number="570" hits="0"/>
+						<line number="571" hits="0"/>
+						<line number="572" hits="0"/>
+						<line number="574" hits="0"/>
+						<line number="575" hits="0"/>
+						<line number="576" hits="0"/>
+						<line number="577" hits="0"/>
+						<line number="579" hits="0"/>
+						<line number="582" hits="0"/>
+						<line number="584" hits="0"/>
+						<line number="597" hits="0"/>
+						<line number="598" hits="0"/>
+						<line number="606" hits="0"/>
+						<line number="607" hits="0"/>
+						<line number="608" hits="0"/>
+						<line number="609" hits="0"/>
+						<line number="610" hits="0"/>
 					</lines>
 				</class>
 				<class name="__init__.py" filename="__init__.py" complexity="0" line-rate="1" branch-rate="0">
@@ -1419,7 +1535,7 @@
 						<line number="2" hits="1"/>
 					</lines>
 				</class>
-				<class name="__main__.py" filename="__main__.py" complexity="0" line-rate="0.8115" branch-rate="0">
+				<class name="__main__.py" filename="__main__.py" complexity="0" line-rate="0.6829" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -1460,93 +1576,94 @@
 						<line number="61" hits="1"/>
 						<line number="65" hits="1"/>
 						<line number="68" hits="1"/>
-						<line number="72" hits="1"/>
+						<line number="69" hits="1"/>
 						<line number="73" hits="1"/>
 						<line number="74" hits="1"/>
-						<line number="78" hits="1"/>
+						<line number="75" hits="1"/>
 						<line number="79" hits="1"/>
 						<line number="80" hits="1"/>
-						<line number="81" hits="1"/>
-						<line number="82" hits="1"/>
+						<line number="81" hits="0"/>
+						<line number="82" hits="0"/>
 						<line number="83" hits="1"/>
-						<line number="85" hits="0"/>
+						<line number="84" hits="1"/>
 						<line number="86" hits="0"/>
-						<line number="90" hits="1"/>
-						<line number="94" hits="1"/>
+						<line number="87" hits="0"/>
+						<line number="91" hits="1"/>
 						<line number="95" hits="1"/>
-						<line number="99" hits="1"/>
+						<line number="96" hits="1"/>
 						<line number="100" hits="1"/>
 						<line number="101" hits="0"/>
 						<line number="102" hits="0"/>
-						<line number="105" hits="1"/>
+						<line number="103" hits="0"/>
 						<line number="106" hits="1"/>
 						<line number="107" hits="1"/>
-						<line number="109" hits="1"/>
-						<line number="110" hits="0"/>
+						<line number="108" hits="1"/>
+						<line number="110" hits="1"/>
 						<line number="111" hits="0"/>
-						<line number="113" hits="0"/>
-						<line number="115" hits="1"/>
-						<line number="122" hits="1"/>
+						<line number="112" hits="0"/>
+						<line number="114" hits="0"/>
+						<line number="116" hits="1"/>
 						<line number="123" hits="1"/>
 						<line number="124" hits="1"/>
 						<line number="125" hits="1"/>
 						<line number="126" hits="1"/>
-						<line number="129" hits="1"/>
+						<line number="127" hits="1"/>
 						<line number="130" hits="1"/>
-						<line number="133" hits="0"/>
-						<line number="135" hits="1"/>
-						<line number="137" hits="0"/>
+						<line number="131" hits="1"/>
+						<line number="134" hits="0"/>
+						<line number="136" hits="1"/>
 						<line number="138" hits="0"/>
 						<line number="139" hits="0"/>
 						<line number="140" hits="0"/>
 						<line number="141" hits="0"/>
 						<line number="142" hits="0"/>
 						<line number="143" hits="0"/>
-						<line number="147" hits="1"/>
+						<line number="144" hits="0"/>
 						<line number="148" hits="1"/>
-						<line number="150" hits="1"/>
+						<line number="149" hits="1"/>
 						<line number="151" hits="1"/>
 						<line number="152" hits="1"/>
-						<line number="156" hits="1"/>
-						<line number="167" hits="1"/>
-						<line number="168" hits="1"/>
+						<line number="153" hits="1"/>
+						<line number="157" hits="1"/>
+						<line number="169" hits="1"/>
 						<line number="170" hits="1"/>
-						<line number="171" hits="1"/>
+						<line number="172" hits="1"/>
 						<line number="173" hits="1"/>
-						<line number="174" hits="1"/>
-						<line number="175" hits="1"/>
-						<line number="178" hits="1"/>
-						<line number="179" hits="1"/>
-						<line number="180" hits="1"/>
-						<line number="189" hits="1"/>
-						<line number="190" hits="1"/>
-						<line number="193" hits="1"/>
-						<line number="194" hits="1"/>
+						<line number="175" hits="0"/>
+						<line number="176" hits="0"/>
+						<line number="177" hits="0"/>
+						<line number="180" hits="0"/>
+						<line number="181" hits="0"/>
+						<line number="182" hits="0"/>
+						<line number="191" hits="0"/>
+						<line number="192" hits="0"/>
 						<line number="195" hits="1"/>
-						<line number="196" hits="0"/>
-						<line number="197" hits="0"/>
+						<line number="196" hits="1"/>
+						<line number="197" hits="1"/>
 						<line number="198" hits="0"/>
-						<line number="200" hits="1"/>
-						<line number="202" hits="0"/>
-						<line number="203" hits="0"/>
-						<line number="206" hits="1"/>
-						<line number="209" hits="1"/>
-						<line number="212" hits="1"/>
-						<line number="213" hits="0"/>
-						<line number="215" hits="1"/>
-						<line number="216" hits="1"/>
+						<line number="199" hits="0"/>
+						<line number="200" hits="0"/>
+						<line number="202" hits="1"/>
+						<line number="204" hits="0"/>
+						<line number="205" hits="0"/>
+						<line number="208" hits="1"/>
+						<line number="211" hits="1"/>
+						<line number="214" hits="1"/>
+						<line number="215" hits="0"/>
 						<line number="217" hits="1"/>
-						<line number="221" hits="1"/>
-						<line number="222" hits="1"/>
-						<line number="223" hits="1"/>
+						<line number="218" hits="0"/>
+						<line number="219" hits="0"/>
+						<line number="223" hits="0"/>
 						<line number="224" hits="0"/>
 						<line number="225" hits="0"/>
-						<line number="229" hits="1"/>
+						<line number="226" hits="0"/>
+						<line number="227" hits="0"/>
 						<line number="231" hits="1"/>
-						<line number="232" hits="1"/>
+						<line number="233" hits="1"/>
+						<line number="234" hits="1"/>
 					</lines>
 				</class>
-				<class name="_pipeline.py" filename="_pipeline.py" complexity="0" line-rate="0.9492" branch-rate="0">
+				<class name="_pipeline.py" filename="_pipeline.py" complexity="0" line-rate="0.7784" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="6" hits="1"/>
@@ -1596,32 +1713,32 @@
 						<line number="127" hits="1"/>
 						<line number="129" hits="1"/>
 						<line number="130" hits="1"/>
-						<line number="132" hits="1"/>
-						<line number="133" hits="1"/>
-						<line number="134" hits="1"/>
-						<line number="135" hits="1"/>
-						<line number="136" hits="1"/>
-						<line number="138" hits="1"/>
-						<line number="139" hits="1"/>
-						<line number="140" hits="1"/>
+						<line number="132" hits="0"/>
+						<line number="133" hits="0"/>
+						<line number="134" hits="0"/>
+						<line number="135" hits="0"/>
+						<line number="136" hits="0"/>
+						<line number="138" hits="0"/>
+						<line number="139" hits="0"/>
+						<line number="140" hits="0"/>
 						<line number="142" hits="1"/>
 						<line number="143" hits="1"/>
-						<line number="149" hits="1"/>
-						<line number="150" hits="1"/>
-						<line number="151" hits="1"/>
-						<line number="153" hits="1"/>
-						<line number="154" hits="1"/>
-						<line number="156" hits="1"/>
-						<line number="157" hits="1"/>
-						<line number="158" hits="1"/>
-						<line number="159" hits="1"/>
-						<line number="161" hits="1"/>
-						<line number="162" hits="1"/>
-						<line number="163" hits="1"/>
-						<line number="164" hits="1"/>
-						<line number="166" hits="1"/>
-						<line number="167" hits="1"/>
-						<line number="168" hits="1"/>
+						<line number="149" hits="0"/>
+						<line number="150" hits="0"/>
+						<line number="151" hits="0"/>
+						<line number="153" hits="0"/>
+						<line number="154" hits="0"/>
+						<line number="156" hits="0"/>
+						<line number="157" hits="0"/>
+						<line number="158" hits="0"/>
+						<line number="159" hits="0"/>
+						<line number="161" hits="0"/>
+						<line number="162" hits="0"/>
+						<line number="163" hits="0"/>
+						<line number="164" hits="0"/>
+						<line number="166" hits="0"/>
+						<line number="167" hits="0"/>
+						<line number="168" hits="0"/>
 						<line number="171" hits="1"/>
 						<line number="179" hits="1"/>
 						<line number="180" hits="1"/>
@@ -1632,154 +1749,156 @@
 						<line number="186" hits="1"/>
 						<line number="191" hits="1"/>
 						<line number="199" hits="1"/>
-						<line number="200" hits="1"/>
 						<line number="201" hits="1"/>
-						<line number="202" hits="1"/>
-						<line number="203" hits="1"/>
-						<line number="205" hits="0"/>
-						<line number="208" hits="1"/>
-						<line number="213" hits="1"/>
+						<line number="202" hits="0"/>
+						<line number="203" hits="0"/>
+						<line number="206" hits="1"/>
+						<line number="209" hits="1"/>
 						<line number="214" hits="1"/>
 						<line number="215" hits="1"/>
-						<line number="217" hits="1"/>
-						<line number="233" hits="1"/>
-						<line number="234" hits="0"/>
-						<line number="235" hits="1"/>
+						<line number="216" hits="1"/>
+						<line number="218" hits="1"/>
+						<line number="234" hits="1"/>
+						<line number="235" hits="0"/>
 						<line number="236" hits="1"/>
-						<line number="237" hits="1"/>
+						<line number="237" hits="0"/>
 						<line number="238" hits="0"/>
-						<line number="239" hits="1"/>
+						<line number="239" hits="0"/>
 						<line number="240" hits="1"/>
 						<line number="241" hits="1"/>
-						<line number="244" hits="1"/>
+						<line number="242" hits="1"/>
 						<line number="245" hits="1"/>
-						<line number="248" hits="1"/>
+						<line number="246" hits="1"/>
 						<line number="249" hits="1"/>
 						<line number="250" hits="1"/>
-						<line number="253" hits="1"/>
+						<line number="251" hits="1"/>
 						<line number="254" hits="1"/>
-						<line number="256" hits="1"/>
+						<line number="255" hits="1"/>
 						<line number="257" hits="1"/>
 						<line number="258" hits="1"/>
 						<line number="259" hits="1"/>
 						<line number="260" hits="1"/>
 						<line number="261" hits="1"/>
-						<line number="263" hits="1"/>
+						<line number="262" hits="1"/>
 						<line number="264" hits="1"/>
 						<line number="265" hits="1"/>
 						<line number="266" hits="1"/>
-						<line number="268" hits="1"/>
+						<line number="267" hits="1"/>
 						<line number="269" hits="1"/>
 						<line number="270" hits="1"/>
-						<line number="272" hits="1"/>
+						<line number="271" hits="1"/>
 						<line number="273" hits="1"/>
-						<line number="275" hits="1"/>
-						<line number="276" hits="1"/>
-						<line number="278" hits="1"/>
+						<line number="274" hits="1"/>
+						<line number="276" hits="0"/>
+						<line number="277" hits="1"/>
 						<line number="279" hits="1"/>
-						<line number="280" hits="0"/>
+						<line number="280" hits="1"/>
 						<line number="281" hits="0"/>
-						<line number="283" hits="0"/>
-						<line number="284" hits="1"/>
+						<line number="282" hits="0"/>
+						<line number="284" hits="0"/>
 						<line number="285" hits="1"/>
-						<line number="287" hits="1"/>
-						<line number="296" hits="1"/>
-						<line number="298" hits="1"/>
-						<line number="305" hits="1"/>
+						<line number="286" hits="1"/>
+						<line number="288" hits="1"/>
+						<line number="297" hits="1"/>
+						<line number="299" hits="1"/>
 						<line number="306" hits="1"/>
-						<line number="308" hits="1"/>
-						<line number="318" hits="1"/>
-						<line number="320" hits="1"/>
+						<line number="307" hits="1"/>
+						<line number="309" hits="1"/>
+						<line number="319" hits="1"/>
 						<line number="321" hits="1"/>
-						<line number="323" hits="1"/>
+						<line number="322" hits="1"/>
 						<line number="324" hits="1"/>
 						<line number="325" hits="1"/>
 						<line number="326" hits="1"/>
-						<line number="328" hits="1"/>
-						<line number="337" hits="1"/>
+						<line number="327" hits="1"/>
+						<line number="329" hits="1"/>
 						<line number="338" hits="1"/>
 						<line number="339" hits="1"/>
 						<line number="340" hits="1"/>
-						<line number="342" hits="1"/>
-						<line number="348" hits="1"/>
+						<line number="341" hits="1"/>
+						<line number="343" hits="1"/>
 						<line number="349" hits="1"/>
 						<line number="350" hits="1"/>
 						<line number="351" hits="1"/>
-						<line number="352" hits="1"/>
-						<line number="354" hits="1"/>
+						<line number="352" hits="0"/>
+						<line number="353" hits="0"/>
 						<line number="355" hits="1"/>
-						<line number="362" hits="1"/>
-						<line number="365" hits="1"/>
-						<line number="372" hits="1"/>
-						<line number="374" hits="1"/>
+						<line number="356" hits="1"/>
+						<line number="363" hits="1"/>
+						<line number="366" hits="1"/>
+						<line number="373" hits="1"/>
 						<line number="375" hits="1"/>
 						<line number="376" hits="1"/>
-						<line number="378" hits="1"/>
+						<line number="377" hits="1"/>
 						<line number="379" hits="1"/>
-						<line number="383" hits="1"/>
+						<line number="380" hits="1"/>
 						<line number="384" hits="1"/>
 						<line number="385" hits="1"/>
-						<line number="386" hits="0"/>
+						<line number="386" hits="1"/>
 						<line number="387" hits="0"/>
-						<line number="389" hits="1"/>
+						<line number="388" hits="0"/>
 						<line number="390" hits="1"/>
-						<line number="392" hits="1"/>
-						<line number="394" hits="1"/>
+						<line number="391" hits="1"/>
+						<line number="393" hits="1"/>
 						<line number="395" hits="1"/>
+						<line number="396" hits="1"/>
 					</lines>
 				</class>
-				<class name="_worker.py" filename="_worker.py" complexity="0" line-rate="0.6327" branch-rate="0">
+				<class name="_worker.py" filename="_worker.py" complexity="0" line-rate="0.6154" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="2" hits="1"/>
 						<line number="3" hits="1"/>
+						<line number="4" hits="1"/>
 						<line number="5" hits="1"/>
 						<line number="6" hits="1"/>
 						<line number="7" hits="1"/>
 						<line number="12" hits="1"/>
-						<line number="14" hits="1"/>
-						<line number="15" hits="1"/>
+						<line number="14" hits="0"/>
+						<line number="15" hits="0"/>
 						<line number="18" hits="1"/>
+						<line number="22" hits="1"/>
 						<line number="23" hits="1"/>
-						<line number="24" hits="1"/>
-						<line number="25" hits="0"/>
-						<line number="26" hits="0"/>
-						<line number="30" hits="0"/>
-						<line number="33" hits="0"/>
-						<line number="35" hits="1"/>
+						<line number="25" hits="1"/>
+						<line number="26" hits="1"/>
+						<line number="27" hits="0"/>
+						<line number="28" hits="0"/>
+						<line number="32" hits="0"/>
+						<line number="35" hits="0"/>
 						<line number="37" hits="1"/>
 						<line number="39" hits="1"/>
-						<line number="40" hits="1"/>
+						<line number="41" hits="1"/>
 						<line number="42" hits="1"/>
-						<line number="43" hits="1"/>
 						<line number="44" hits="1"/>
 						<line number="45" hits="1"/>
 						<line number="46" hits="1"/>
-						<line number="48" hits="0"/>
+						<line number="47" hits="1"/>
+						<line number="48" hits="1"/>
 						<line number="50" hits="0"/>
-						<line number="51" hits="0"/>
+						<line number="52" hits="0"/>
 						<line number="53" hits="0"/>
-						<line number="56" hits="0"/>
-						<line number="57" hits="0"/>
+						<line number="55" hits="0"/>
+						<line number="58" hits="0"/>
 						<line number="59" hits="0"/>
 						<line number="61" hits="0"/>
-						<line number="62" hits="0"/>
-						<line number="71" hits="1"/>
-						<line number="72" hits="1"/>
-						<line number="75" hits="1"/>
+						<line number="63" hits="0"/>
+						<line number="64" hits="0"/>
+						<line number="73" hits="1"/>
+						<line number="74" hits="1"/>
 						<line number="77" hits="1"/>
-						<line number="78" hits="0"/>
-						<line number="80" hits="1"/>
-						<line number="81" hits="1"/>
+						<line number="79" hits="1"/>
+						<line number="80" hits="0"/>
 						<line number="82" hits="1"/>
+						<line number="83" hits="1"/>
 						<line number="84" hits="1"/>
-						<line number="85" hits="1"/>
 						<line number="86" hits="1"/>
-						<line number="89" hits="1"/>
-						<line number="91" hits="0"/>
-						<line number="92" hits="0"/>
-						<line number="97" hits="0"/>
-						<line number="98" hits="0"/>
+						<line number="87" hits="1"/>
+						<line number="88" hits="1"/>
+						<line number="91" hits="1"/>
+						<line number="93" hits="0"/>
+						<line number="94" hits="0"/>
+						<line number="99" hits="0"/>
+						<line number="100" hits="0"/>
 					</lines>
 				</class>
 			</classes>
@@ -2106,9 +2225,9 @@
 				</class>
 			</classes>
 		</package>
-		<package name="config" line-rate="0.9565" branch-rate="0" complexity="0">
+		<package name="config" line-rate="0.1304" branch-rate="0" complexity="0">
 			<classes>
-				<class name="__init__.py" filename="config/__init__.py" complexity="0" line-rate="1" branch-rate="0">
+				<class name="__init__.py" filename="config/__init__.py" complexity="0" line-rate="0.375" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="6" hits="1"/>
@@ -2116,59 +2235,59 @@
 						<line number="8" hits="1"/>
 						<line number="17" hits="1"/>
 						<line number="20" hits="1"/>
-						<line number="25" hits="1"/>
-						<line number="26" hits="1"/>
-						<line number="27" hits="1"/>
-						<line number="28" hits="1"/>
-						<line number="29" hits="1"/>
-						<line number="30" hits="1"/>
+						<line number="25" hits="0"/>
+						<line number="26" hits="0"/>
+						<line number="27" hits="0"/>
+						<line number="28" hits="0"/>
+						<line number="29" hits="0"/>
+						<line number="30" hits="0"/>
 						<line number="33" hits="1"/>
-						<line number="35" hits="1"/>
-						<line number="36" hits="1"/>
-						<line number="37" hits="1"/>
-						<line number="38" hits="1"/>
+						<line number="35" hits="0"/>
+						<line number="36" hits="0"/>
+						<line number="37" hits="0"/>
+						<line number="38" hits="0"/>
 					</lines>
 				</class>
-				<class name="__main__.py" filename="config/__main__.py" complexity="0" line-rate="0.9333" branch-rate="0">
+				<class name="__main__.py" filename="config/__main__.py" complexity="0" line-rate="0" branch-rate="0">
 					<methods/>
 					<lines>
-						<line number="1" hits="1"/>
-						<line number="2" hits="1"/>
-						<line number="4" hits="1"/>
-						<line number="5" hits="1"/>
-						<line number="8" hits="1"/>
-						<line number="9" hits="1"/>
+						<line number="1" hits="0"/>
+						<line number="2" hits="0"/>
+						<line number="4" hits="0"/>
+						<line number="5" hits="0"/>
+						<line number="8" hits="0"/>
+						<line number="9" hits="0"/>
 						<line number="10" hits="0"/>
-						<line number="12" hits="1"/>
-						<line number="13" hits="1"/>
-						<line number="16" hits="1"/>
-						<line number="21" hits="1"/>
-						<line number="23" hits="1"/>
-						<line number="24" hits="1"/>
-						<line number="25" hits="1"/>
-						<line number="26" hits="1"/>
-						<line number="27" hits="1"/>
-						<line number="29" hits="1"/>
-						<line number="30" hits="1"/>
-						<line number="31" hits="1"/>
-						<line number="32" hits="1"/>
-						<line number="33" hits="1"/>
-						<line number="34" hits="1"/>
-						<line number="35" hits="1"/>
-						<line number="37" hits="1"/>
-						<line number="38" hits="1"/>
-						<line number="39" hits="1"/>
-						<line number="42" hits="1"/>
-						<line number="43" hits="1"/>
-						<line number="46" hits="1"/>
+						<line number="12" hits="0"/>
+						<line number="13" hits="0"/>
+						<line number="16" hits="0"/>
+						<line number="21" hits="0"/>
+						<line number="23" hits="0"/>
+						<line number="24" hits="0"/>
+						<line number="25" hits="0"/>
+						<line number="26" hits="0"/>
+						<line number="27" hits="0"/>
+						<line number="29" hits="0"/>
+						<line number="30" hits="0"/>
+						<line number="31" hits="0"/>
+						<line number="32" hits="0"/>
+						<line number="33" hits="0"/>
+						<line number="34" hits="0"/>
+						<line number="35" hits="0"/>
+						<line number="37" hits="0"/>
+						<line number="38" hits="0"/>
+						<line number="39" hits="0"/>
+						<line number="42" hits="0"/>
+						<line number="43" hits="0"/>
+						<line number="46" hits="0"/>
 						<line number="47" hits="0"/>
 					</lines>
 				</class>
 			</classes>
 		</package>
-		<package name="data" line-rate="0.9065" branch-rate="0" complexity="0">
+		<package name="data" line-rate="0.7944" branch-rate="0" complexity="0">
 			<classes>
-				<class name="__init__.py" filename="data/__init__.py" complexity="0" line-rate="0.9101" branch-rate="0">
+				<class name="__init__.py" filename="data/__init__.py" complexity="0" line-rate="0.9551" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="6" hits="1"/>
@@ -2232,10 +2351,10 @@
 						<line number="100" hits="1"/>
 						<line number="101" hits="1"/>
 						<line number="103" hits="1"/>
-						<line number="104" hits="0"/>
-						<line number="105" hits="0"/>
-						<line number="106" hits="0"/>
-						<line number="107" hits="0"/>
+						<line number="104" hits="1"/>
+						<line number="105" hits="1"/>
+						<line number="106" hits="1"/>
+						<line number="107" hits="1"/>
 						<line number="109" hits="1"/>
 						<line number="110" hits="1"/>
 						<line number="111" hits="1"/>
@@ -2262,47 +2381,47 @@
 						<line number="161" hits="1"/>
 					</lines>
 				</class>
-				<class name="__main__.py" filename="data/__main__.py" complexity="0" line-rate="0.8889" branch-rate="0">
+				<class name="__main__.py" filename="data/__main__.py" complexity="0" line-rate="0" branch-rate="0">
 					<methods/>
 					<lines>
-						<line number="1" hits="1"/>
-						<line number="2" hits="1"/>
-						<line number="3" hits="1"/>
-						<line number="5" hits="1"/>
-						<line number="8" hits="1"/>
-						<line number="9" hits="1"/>
+						<line number="1" hits="0"/>
+						<line number="2" hits="0"/>
+						<line number="3" hits="0"/>
+						<line number="5" hits="0"/>
+						<line number="8" hits="0"/>
+						<line number="9" hits="0"/>
 						<line number="10" hits="0"/>
-						<line number="12" hits="1"/>
-						<line number="13" hits="1"/>
-						<line number="15" hits="1"/>
-						<line number="17" hits="1"/>
-						<line number="18" hits="1"/>
-						<line number="19" hits="1"/>
-						<line number="22" hits="1"/>
-						<line number="23" hits="1"/>
-						<line number="25" hits="1"/>
-						<line number="28" hits="1"/>
+						<line number="12" hits="0"/>
+						<line number="13" hits="0"/>
+						<line number="15" hits="0"/>
+						<line number="17" hits="0"/>
+						<line number="18" hits="0"/>
+						<line number="19" hits="0"/>
+						<line number="22" hits="0"/>
+						<line number="23" hits="0"/>
+						<line number="25" hits="0"/>
+						<line number="28" hits="0"/>
 						<line number="29" hits="0"/>
 					</lines>
 				</class>
 			</classes>
 		</package>
-		<package name="import_wrapper" line-rate="0.75" branch-rate="0" complexity="0">
+		<package name="import_wrapper" line-rate="0.15" branch-rate="0" complexity="0">
 			<classes>
 				<class name="__init__.py" filename="import_wrapper/__init__.py" complexity="0" line-rate="1" branch-rate="0">
 					<methods/>
 					<lines/>
 				</class>
-				<class name="helper.py" filename="import_wrapper/helper.py" complexity="0" line-rate="0.7" branch-rate="0">
+				<class name="helper.py" filename="import_wrapper/helper.py" complexity="0" line-rate="0" branch-rate="0">
 					<methods/>
 					<lines>
-						<line number="1" hits="1"/>
-						<line number="2" hits="1"/>
-						<line number="5" hits="1"/>
-						<line number="17" hits="1"/>
-						<line number="18" hits="1"/>
-						<line number="19" hits="1"/>
-						<line number="20" hits="1"/>
+						<line number="1" hits="0"/>
+						<line number="2" hits="0"/>
+						<line number="5" hits="0"/>
+						<line number="17" hits="0"/>
+						<line number="18" hits="0"/>
+						<line number="19" hits="0"/>
+						<line number="20" hits="0"/>
 						<line number="21" hits="0"/>
 						<line number="22" hits="0"/>
 						<line number="23" hits="0"/>
@@ -2318,21 +2437,21 @@
 						<line number="9" hits="1"/>
 					</lines>
 				</class>
-				<class name="typing.py" filename="import_wrapper/typing.py" complexity="0" line-rate="1" branch-rate="0">
+				<class name="typing.py" filename="import_wrapper/typing.py" complexity="0" line-rate="0" branch-rate="0">
 					<methods/>
 					<lines>
-						<line number="1" hits="1"/>
-						<line number="2" hits="1"/>
-						<line number="4" hits="1"/>
-						<line number="5" hits="1"/>
-						<line number="6" hits="1"/>
+						<line number="1" hits="0"/>
+						<line number="2" hits="0"/>
+						<line number="4" hits="0"/>
+						<line number="5" hits="0"/>
+						<line number="6" hits="0"/>
 					</lines>
 				</class>
 			</classes>
 		</package>
-		<package name="tests" line-rate="0.9599" branch-rate="0" complexity="0">
+		<package name="tests" line-rate="0.8345" branch-rate="0" complexity="0">
 			<classes>
-				<class name="conftest.py" filename="tests/conftest.py" complexity="0" line-rate="0.875" branch-rate="0">
+				<class name="conftest.py" filename="tests/conftest.py" complexity="0" line-rate="0.375" branch-rate="0">
 					<methods/>
 					<lines>
 						<line number="1" hits="1"/>
@@ -2342,23 +2461,23 @@
 						<line number="6" hits="1"/>
 						<line number="9" hits="1"/>
 						<line number="12" hits="1"/>
-						<line number="13" hits="1"/>
-						<line number="14" hits="1"/>
-						<line number="15" hits="1"/>
-						<line number="16" hits="1"/>
-						<line number="17" hits="1"/>
-						<line number="20" hits="1"/>
-						<line number="21" hits="1"/>
-						<line number="23" hits="1"/>
-						<line number="24" hits="1"/>
-						<line number="25" hits="1"/>
-						<line number="27" hits="1"/>
-						<line number="28" hits="1"/>
-						<line number="30" hits="1"/>
+						<line number="13" hits="0"/>
+						<line number="14" hits="0"/>
+						<line number="15" hits="0"/>
+						<line number="16" hits="0"/>
+						<line number="17" hits="0"/>
+						<line number="20" hits="1"/>
+						<line number="21" hits="1"/>
+						<line number="23" hits="0"/>
+						<line number="24" hits="0"/>
+						<line number="25" hits="0"/>
+						<line number="27" hits="0"/>
+						<line number="28" hits="0"/>
+						<line number="30" hits="0"/>
 						<line number="32" hits="0"/>
 						<line number="33" hits="0"/>
 						<line number="34" hits="0"/>
-						<line number="40" hits="1"/>
+						<line number="40" hits="0"/>
 					</lines>
 				</class>
 				<class name="test_base_image.py" filename="tests/test_base_image.py" complexity="0" line-rate="0.96" branch-rate="0">
@@ -2391,43 +2510,6 @@
 						<line number="57" hits="0"/>
 					</lines>
 				</class>
-				<class name="test_config_cli.py" filename="tests/test_config_cli.py" complexity="0" line-rate="1" branch-rate="0">
-					<methods/>
-					<lines>
-						<line number="1" hits="1"/>
-						<line number="3" hits="1"/>
-						<line number="6" hits="1"/>
-						<line number="7" hits="1"/>
-						<line number="8" hits="1"/>
-						<line number="9" hits="1"/>
-						<line number="10" hits="1"/>
-						<line number="13" hits="1"/>
-						<line number="16" hits="1"/>
-						<line number="17" hits="1"/>
-						<line number="18" hits="1"/>
-						<line number="19" hits="1"/>
-						<line number="20" hits="1"/>
-						<line number="21" hits="1"/>
-						<line number="24" hits="1"/>
-						<line number="25" hits="1"/>
-						<line number="28" hits="1"/>
-						<line number="29" hits="1"/>
-					</lines>
-				</class>
-				<class name="test_data_cli.py" filename="tests/test_data_cli.py" complexity="0" line-rate="1" branch-rate="0">
-					<methods/>
-					<lines>
-						<line number="1" hits="1"/>
-						<line number="3" hits="1"/>
-						<line number="6" hits="1"/>
-						<line number="7" hits="1"/>
-						<line number="8" hits="1"/>
-						<line number="11" hits="1"/>
-						<line number="12" hits="1"/>
-						<line number="13" hits="1"/>
-						<line number="14" hits="1"/>
-					</lines>
-				</class>
 				<class name="test_images_tsv_results.py" filename="tests/test_images_tsv_results.py" complexity="0" line-rate="0.9412" branch-rate="0">
 					<methods/>
 					<lines>
@@ -2501,128 +2583,6 @@
 						<line number="145" hits="0"/>
 					</lines>
 				</class>
-				<class name="test_pipeline_cli.py" filename="tests/test_pipeline_cli.py" complexity="0" line-rate="1" branch-rate="0">
-					<methods/>
-					<lines>
-						<line number="1" hits="1"/>
-						<line number="2" hits="1"/>
-						<line number="3" hits="1"/>
-						<line number="5" hits="1"/>
-						<line number="7" hits="1"/>
-						<line number="11" hits="1"/>
-						<line number="12" hits="1"/>
-						<line number="13" hits="1"/>
-						<line number="16" hits="1"/>
-						<line number="17" hits="1"/>
-						<line number="18" hits="1"/>
-						<line number="19" hits="1"/>
-						<line number="20" hits="1"/>
-						<line number="23" hits="1"/>
-						<line number="24" hits="1"/>
-						<line number="25" hits="1"/>
-						<line number="26" hits="1"/>
-						<line number="27" hits="1"/>
-						<line number="30" hits="1"/>
-						<line number="31" hits="1"/>
-						<line number="32" hits="1"/>
-						<line number="33" hits="1"/>
-						<line number="34" hits="1"/>
-						<line number="35" hits="1"/>
-						<line number="36" hits="1"/>
-						<line number="39" hits="1"/>
-						<line number="40" hits="1"/>
-						<line number="41" hits="1"/>
-						<line number="42" hits="1"/>
-						<line number="43" hits="1"/>
-						<line number="44" hits="1"/>
-						<line number="47" hits="1"/>
-						<line number="48" hits="1"/>
-						<line number="49" hits="1"/>
-						<line number="50" hits="1"/>
-						<line number="70" hits="1"/>
-						<line number="73" hits="1"/>
-						<line number="74" hits="1"/>
-						<line number="75" hits="1"/>
-						<line number="78" hits="1"/>
-						<line number="79" hits="1"/>
-						<line number="81" hits="1"/>
-						<line number="90" hits="1"/>
-						<line number="93" hits="1"/>
-						<line number="94" hits="1"/>
-						<line number="95" hits="1"/>
-						<line number="103" hits="1"/>
-						<line number="106" hits="1"/>
-						<line number="107" hits="1"/>
-						<line number="157" hits="1"/>
-						<line number="160" hits="1"/>
-						<line number="161" hits="1"/>
-						<line number="162" hits="1"/>
-						<line number="163" hits="1"/>
-						<line number="164" hits="1"/>
-						<line number="167" hits="1"/>
-						<line number="168" hits="1"/>
-						<line number="173" hits="1"/>
-						<line number="174" hits="1"/>
-						<line number="175" hits="1"/>
-					</lines>
-				</class>
-				<class name="test_suite.py" filename="tests/test_suite.py" complexity="0" line-rate="1" branch-rate="0">
-					<methods/>
-					<lines/>
-				</class>
-				<class name="test_ui_cli.py" filename="tests/test_ui_cli.py" complexity="0" line-rate="1" branch-rate="0">
-					<methods/>
-					<lines>
-						<line number="1" hits="1"/>
-						<line number="2" hits="1"/>
-						<line number="3" hits="1"/>
-						<line number="4" hits="1"/>
-						<line number="5" hits="1"/>
-						<line number="7" hits="1"/>
-						<line number="8" hits="1"/>
-						<line number="10" hits="1"/>
-						<line number="11" hits="1"/>
-						<line number="12" hits="1"/>
-						<line number="15" hits="1"/>
-						<line number="16" hits="1"/>
-						<line number="17" hits="1"/>
-						<line number="18" hits="1"/>
-						<line number="19" hits="1"/>
-						<line number="20" hits="1"/>
-						<line number="23" hits="1"/>
-						<line number="24" hits="1"/>
-						<line number="25" hits="1"/>
-						<line number="26" hits="1"/>
-						<line number="28" hits="1"/>
-						<line number="29" hits="1"/>
-						<line number="30" hits="1"/>
-						<line number="31" hits="1"/>
-						<line number="32" hits="1"/>
-						<line number="33" hits="1"/>
-						<line number="34" hits="1"/>
-						<line number="35" hits="1"/>
-						<line number="36" hits="1"/>
-						<line number="39" hits="1"/>
-						<line number="40" hits="1"/>
-						<line number="42" hits="1"/>
-						<line number="43" hits="1"/>
-						<line number="44" hits="1"/>
-						<line number="46" hits="1"/>
-						<line number="47" hits="1"/>
-						<line number="48" hits="1"/>
-						<line number="49" hits="1"/>
-						<line number="51" hits="1"/>
-						<line number="52" hits="1"/>
-						<line number="53" hits="1"/>
-						<line number="56" hits="1"/>
-						<line number="57" hits="1"/>
-						<line number="58" hits="1"/>
-						<line number="61" hits="1"/>
-						<line number="62" hits="1"/>
-						<line number="63" hits="1"/>
-						<line number="64" hits="1"/>
-					</lines>
-				</class>
 				<class name="test_utils.py" filename="tests/test_utils.py" complexity="0" line-rate="0.8636" branch-rate="0">
 					<methods/>
 					<lines>
@@ -2652,86 +2612,104 @@
 				</class>
 			</classes>
 		</package>
-		<package name="ui" line-rate="0.9286" branch-rate="0" complexity="0">
+		<package name="ui" line-rate="0" branch-rate="0" complexity="0">
 			<classes>
-				<class name="__init__.py" filename="ui/__init__.py" complexity="0" line-rate="0.9565" branch-rate="0">
+				<class name="HQC_html.py" filename="ui/HQC_html.py" complexity="0" line-rate="0" branch-rate="0">
 					<methods/>
 					<lines>
-						<line number="5" hits="1"/>
-						<line number="6" hits="1"/>
-						<line number="7" hits="1"/>
-						<line number="8" hits="1"/>
-						<line number="9" hits="1"/>
-						<line number="10" hits="1"/>
-						<line number="11" hits="1"/>
-						<line number="13" hits="1"/>
-						<line number="14" hits="1"/>
-						<line number="18" hits="1"/>
-						<line number="21" hits="1"/>
-						<line number="28" hits="1"/>
-						<line number="30" hits="1"/>
-						<line number="31" hits="1"/>
-						<line number="32" hits="1"/>
-						<line number="34" hits="1"/>
-						<line number="35" hits="1"/>
-						<line number="39" hits="1"/>
-						<line number="40" hits="1"/>
-						<line number="41" hits="1"/>
-						<line number="43" hits="1"/>
-						<line number="46" hits="1"/>
-						<line number="47" hits="1"/>
-						<line number="52" hits="1"/>
-						<line number="54" hits="1"/>
-						<line number="55" hits="1"/>
-						<line number="56" hits="1"/>
-						<line number="58" hits="1"/>
-						<line number="61" hits="1"/>
-						<line number="64" hits="1"/>
-						<line number="65" hits="1"/>
-						<line number="69" hits="1"/>
-						<line number="70" hits="1"/>
-						<line number="71" hits="1"/>
-						<line number="73" hits="1"/>
-						<line number="79" hits="1"/>
-						<line number="80" hits="1"/>
-						<line number="83" hits="1"/>
-						<line number="85" hits="1"/>
-						<line number="86" hits="1"/>
-						<line number="87" hits="1"/>
-						<line number="91" hits="1"/>
-						<line number="92" hits="1"/>
-						<line number="98" hits="1"/>
-						<line number="100" hits="0"/>
+						<line number="1" hits="0"/>
+						<line number="2" hits="0"/>
+						<line number="3" hits="0"/>
+						<line number="4" hits="0"/>
+						<line number="5" hits="0"/>
+						<line number="6" hits="0"/>
+						<line number="7" hits="0"/>
+						<line number="9" hits="0"/>
+						<line number="12" hits="0"/>
+						<line number="14" hits="0"/>
+						<line number="15" hits="0"/>
+						<line number="16" hits="0"/>
+						<line number="19" hits="0"/>
+						<line number="20" hits="0"/>
+						<line number="24" hits="0"/>
+						<line number="25" hits="0"/>
+						<line number="26" hits="0"/>
+						<line number="29" hits="0"/>
+						<line number="30" hits="0"/>
+						<line number="31" hits="0"/>
+						<line number="34" hits="0"/>
+						<line number="35" hits="0"/>
+						<line number="37" hits="0"/>
+						<line number="38" hits="0"/>
+						<line number="39" hits="0"/>
+						<line number="41" hits="0"/>
+						<line number="42" hits="0"/>
+						<line number="44" hits="0"/>
+						<line number="45" hits="0"/>
+						<line number="46" hits="0"/>
+						<line number="47" hits="0"/>
+						<line number="48" hits="0"/>
+						<line number="49" hits="0"/>
+						<line number="52" hits="0"/>
+						<line number="55" hits="0"/>
+						<line number="56" hits="0"/>
+						<line number="57" hits="0"/>
+						<line number="58" hits="0"/>
+						<line number="61" hits="0"/>
+						<line number="62" hits="0"/>
+						<line number="66" hits="0"/>
+						<line number="69" hits="0"/>
+						<line number="70" hits="0"/>
+						<line number="72" hits="0"/>
+						<line number="74" hits="0"/>
+						<line number="77" hits="0"/>
+						<line number="78" hits="0"/>
+						<line number="80" hits="0"/>
+						<line number="81" hits="0"/>
+						<line number="84" hits="0"/>
+						<line number="85" hits="0"/>
+						<line number="89" hits="0"/>
+						<line number="90" hits="0"/>
+						<line number="91" hits="0"/>
+						<line number="92" hits="0"/>
+						<line number="93" hits="0"/>
+						<line number="94" hits="0"/>
+						<line number="95" hits="0"/>
+						<line number="96" hits="0"/>
+						<line number="97" hits="0"/>
 						<line number="101" hits="0"/>
+						<line number="102" hits="0"/>
+						<line number="103" hits="0"/>
+						<line number="105" hits="0"/>
+						<line number="106" hits="0"/>
+						<line number="116" hits="0"/>
 					</lines>
 				</class>
-				<class name="__main__.py" filename="ui/__main__.py" complexity="0" line-rate="0.875" branch-rate="0">
+				<class name="__init__.py" filename="ui/__init__.py" complexity="0" line-rate="1" branch-rate="0">
+					<methods/>
+					<lines/>
+				</class>
+				<class name="__main__.py" filename="ui/__main__.py" complexity="0" line-rate="0" branch-rate="0">
 					<methods/>
 					<lines>
-						<line number="1" hits="1"/>
-						<line number="2" hits="1"/>
-						<line number="4" hits="1"/>
-						<line number="5" hits="1"/>
-						<line number="8" hits="1"/>
-						<line number="9" hits="1"/>
-						<line number="11" hits="1"/>
+						<line number="1" hits="0"/>
+						<line number="2" hits="0"/>
+						<line number="3" hits="0"/>
+						<line number="5" hits="0"/>
+						<line number="7" hits="0"/>
+						<line number="8" hits="0"/>
+						<line number="9" hits="0"/>
+						<line number="11" hits="0"/>
 						<line number="12" hits="0"/>
-						<line number="14" hits="1"/>
-						<line number="15" hits="1"/>
-						<line number="19" hits="1"/>
-						<line number="24" hits="1"/>
-						<line number="26" hits="1"/>
-						<line number="29" hits="1"/>
-						<line number="33" hits="1"/>
-						<line number="35" hits="1"/>
-						<line number="36" hits="1"/>
-						<line number="37" hits="1"/>
-						<line number="38" hits="1"/>
-						<line number="39" hits="1"/>
-						<line number="40" hits="1"/>
-						<line number="43" hits="0"/>
-						<line number="46" hits="1"/>
-						<line number="47" hits="0"/>
+						<line number="13" hits="0"/>
+						<line number="14" hits="0"/>
+						<line number="15" hits="0"/>
+						<line number="19" hits="0"/>
+						<line number="20" hits="0"/>
+						<line number="22" hits="0"/>
+						<line number="23" hits="0"/>
+						<line number="25" hits="0"/>
+						<line number="26" hits="0"/>
 					</lines>
 				</class>
 			</classes>
diff --git a/histoqc/tests/target/results.tsv b/histoqc/tests/target/results.tsv
index 544d9fc..b75c8a3 100644
--- a/histoqc/tests/target/results.tsv
+++ b/histoqc/tests/target/results.tsv
@@ -1,7 +1,7 @@
 #start_time:	2023-12-06 11:00:41.788659
-#pipeline:	BasicModule.getBasicStats LightDarkModule.saveEqualisedImage LightDarkModule.minimumPixelIntensityNeighborhoodFiltering LightDarkModule.getIntensityThresholdPercent:darktissue BubbleRegionByRegion.detectSmoothness MorphologyModule.removeFatlikeTissue MorphologyModule.fillSmallHoles MorphologyModule.removeSmallObjects LocalTextureEstimationModule.estimateGreyComatrixFeatures:background BrightContrastModule.getContrast:background BrightContrastModule.getBrightnessGray:background BrightContrastModule.getBrightnessByChannelinColorSpace:RGB_background BlurDetectionModule.identifyBlurryRegions BasicModule.finalProcessingSpur BasicModule.finalProcessingArea HistogramModule.compareToTemplates HistogramModule.getHistogram LocalTextureEstimationModule.estimateGreyComatrixFeatures:final BrightContrastModule.getContrast BrightContrastModule.getBrightnessGray BrightContrastModule.getBrightnessByChannelinColorSpace:RGB BrightContrastModule.getBrightnessByChannelinColorSpace:YUV DeconvolutionModule.separateStains SaveModule.saveFinalMask SaveModule.saveMacro SaveModule.saveThumbnails BasicModule.finalComputations
+#pipeline:	BasicModule.getBasicStats LightDarkModule.saveEqualisedImage LightDarkModule.minimumPixelIntensityNeighborhoodFiltering LightDarkModule.getIntensityThresholdPercent:darktissue BubbleRegionByRegion.detectSmoothness MorphologyModule.removeFatlikeTissue MorphologyModule.fillSmallHoles MorphologyModule.removeSmallObjects LocalTextureEstimationModule.estimateGreyComatrixFeatures:background BrightContrastModule.getContrast:background BrightContrastModule.getBrightnessGray:background BrightContrastModule.getBrightnessByChannelinColorSpace:RGB_background BlurDetectionModule.identifyBlurryRegions BasicModule.finalProcessingSpur BasicModule.finalProcessingArea HistogramModule.compareToTemplates HistogramModule.getHistogram LocalTextureEstimationModule.estimateGreyComatrixFeatures:final BrightContrastModule.getContrast BrightContrastModule.getBrightnessGray BrightContrastModule.getBrightnessByChannelinColorSpace:RGB BrightContrastModule.getBrightnessByChannelinColorSpace:YUV DeconvolutionModule.separateStains SaveModule.saveFinalMask SaveModule.saveMacro SaveModule.saveThumbnails BasicModule.countTissuePieces BasicModule.finalComputations
 #outdir:	/Users/nanli/Documents/github/HistoQC/histoqc/tests/new
 #config_file:	/Users/nanli/Documents/github/HistoQC/histoqc/config/config_v2.1.ini
 #command_line_args:	-c ./histoqc/config/config_v2.1.ini -o ./histoqc/tests/new -s 123 ./histoqc/tests/data/TCGA-EJ-5509-01A-01-BS1_ROI.svs
-#dataset:filename	comments	image_bounding_box	base_mag	type	levels	height	width	mpp_x	mpp_y	comment	brightestPixels	dark	flat_areas	fatlike_tissue_removed_num_regions	fatlike_tissue_removed_mean_area	fatlike_tissue_removed_max_area	fatlike_tissue_removed_percent	small_tissue_filled_num_regions	small_tissue_filled_mean_area	small_tissue_filled_max_area	small_tissue_filled_percent	small_tissue_removed_num_regions	small_tissue_removed_mean_area	small_tissue_removed_max_area	small_tissue_removed_percent	background_contrast	background_contrast_std	background_dissimilarity	background_dissimilarity_std	background_homogeneity	background_homogeneity_std	background_ASM	background_ASM_std	background_energy	background_energy_std	background_correlation	background_correlation_std	background_tenenGrad_contrast	background_michelson_contrast	background_rms_contrast	background_grayscale_brightness	background_grayscale_brightness_std	background_chan1_brightness	background_chan1_brightness_std	background_chan2_brightness	background_chan2_brightness_std	background_chan3_brightness	background_chan3_brightness_std	blurry_removed_num_regions	blurry_removed_mean_area	blurry_removed_max_area	blurry_removed_percent	spur_pixels	areaThresh	template1_MSE_hist	template2_MSE_hist	template3_MSE_hist	template4_MSE_hist	final_contrast	final_contrast_std	final_dissimilarity	final_dissimilarity_std	final_homogeneity	final_homogeneity_std	final_ASM	final_ASM_std	final_energy	final_energy_std	final_correlation	final_correlation_std	tenenGrad_contrast	michelson_contrast	rms_contrast	grayscale_brightness	grayscale_brightness_std	chan1_brightness	chan1_brightness_std	chan2_brightness	chan2_brightness_std	chan3_brightness	chan3_brightness_std	chan1_brightness_YUV	chan1_brightness_std_YUV	chan2_brightness_YUV	chan2_brightness_std_YUV	chan3_brightness_YUV	chan3_brightness_std_YUV	deconv_c0_mean	deconv_c0_std	deconv_c1_mean	deconv_c1_std	deconv_c2_mean	deconv_c2_std	pixels_to_use	warnings
-TCGA-EJ-5509-01A-01-BS1_ROI.svs	 	(0, 0, 4092, 4092)	20.0	aperio	1	4092	4092	0.50149999999999995	0.50149999999999995	Aperio Fake |AppMag = 20|MPP = 0.5015	0.2487945556640625	0.0063374702931080495	0.006582309532083608	0	0	0	0.0	165	1.8909090909090909	15	-0.006420149391937802	1	10.0	10	0.00020446134658247406	1.0098250225817402	1.6726571860607253	0.2528666764200787	0.4252018475618517	0.9337698968400423	0.1142845916582232	0.8404324661847189	0.2749993733706908	0.897567529038673	0.18656097394720528	0.5999317010355991	0.4234307078840679	9.538838020360488e-06	0.9268259509452782	0.18247882870888657	0.9186934437180535	0.005377040601787484	235.76269760173108	1.3349606666359373	233.56590731502072	1.473921948906114	236.81282683176053	0.9182862023596723	3	1744.6666666666667	4915	0.10703695372093502	0.0	0.0	0.0005713989005378889	0.00210218250820665	0.00037149510237524463	0.0022534729516800454	2.4557276884185666	1.068922962978307	1.1239287111502159	0.3038952269197558	0.529846271258571	0.10999022358426115	0.08367593565359072	0.02877052817684292	0.28140090494640624	0.06700348012554541	0.05568572651126721	0.19289829129121416	0.0007475161992457143	0.9268259509452782	0.16339142134781473	0.48661575224918774	0.16339142134781473	164.30908049925569	34.5809331872731	109.32547807168213	45.571779037831845	152.00957288446125	33.74422284266695	0.5122806353183663	0.1569209423864019	0.04125629187087427	0.017144963702879386	0.11586162500617757	0.04980135461685613	0.03480984437371579	0.020603328666024174	0.02379815335291759	0.01340663580142446	0.03387246974681185	0.014160677538799784	43665	|TCGA-EJ-5509-01A-01-BS1_ROI.svs- 	saveMacro Can't Read 'macro' Image from Slide's Associated Images
+#dataset:filename	comments	image_bounding_box	base_mag	type	levels	height	width	mpp_x	mpp_y	comment	brightestPixels	dark	flat_areas	fatlike_tissue_removed_num_regions	fatlike_tissue_removed_mean_area	fatlike_tissue_removed_max_area	fatlike_tissue_removed_percent	small_tissue_filled_num_regions	small_tissue_filled_mean_area	small_tissue_filled_max_area	small_tissue_filled_percent	small_tissue_removed_num_regions	small_tissue_removed_mean_area	small_tissue_removed_max_area	small_tissue_removed_percent	background_contrast	background_contrast_std	background_dissimilarity	background_dissimilarity_std	background_homogeneity	background_homogeneity_std	background_ASM	background_ASM_std	background_energy	background_energy_std	background_correlation	background_correlation_std	background_tenenGrad_contrast	background_michelson_contrast	background_rms_contrast	background_grayscale_brightness	background_grayscale_brightness_std	background_chan1_brightness	background_chan1_brightness_std	background_chan2_brightness	background_chan2_brightness_std	background_chan3_brightness	background_chan3_brightness_std	blurry_removed_num_regions	blurry_removed_mean_area	blurry_removed_max_area	blurry_removed_percent	spur_pixels	areaThresh	template1_MSE_hist	template2_MSE_hist	template3_MSE_hist	template4_MSE_hist	final_contrast	final_contrast_std	final_dissimilarity	final_dissimilarity_std	final_homogeneity	final_homogeneity_std	final_ASM	final_ASM_std	final_energy	final_energy_std	final_correlation	final_correlation_std	tenenGrad_contrast	michelson_contrast	rms_contrast	grayscale_brightness	grayscale_brightness_std	chan1_brightness	chan1_brightness_std	chan2_brightness	chan2_brightness_std	chan3_brightness	chan3_brightness_std	chan1_brightness_YUV	chan1_brightness_std_YUV	chan2_brightness_YUV	chan2_brightness_std_YUV	chan3_brightness_YUV	chan3_brightness_std_YUV	deconv_c0_mean	deconv_c0_std	deconv_c1_mean	deconv_c1_std	deconv_c2_mean	deconv_c2_std	#pieces_of_tissue	pixels_to_use	warnings
+TCGA-EJ-5509-01A-01-BS1_ROI.svs	 	(0, 0, 4092, 4092)	20.0	aperio	1	4092	4092	0.50149999999999995	0.50149999999999995	Aperio Fake |AppMag = 20|MPP = 0.5015	0.2487945556640625	0.0063374702931080495	0.006582309532083608	0	0	0	0.0	165	1.8909090909090909	15	-0.006420149391937802	1	10.0	10	0.00020446134658247406	1.0098250225817402	1.6726571860607253	0.2528666764200787	0.4252018475618517	0.9337698968400423	0.1142845916582232	0.8404324661847189	0.2749993733706908	0.897567529038673	0.18656097394720528	0.5999317010355991	0.4234307078840679	9.538838020360488e-06	0.9268259509452782	0.18247882870888657	0.9186934437180535	0.005377040601787484	235.76269760173108	1.3349606666359373	233.56590731502072	1.473921948906114	236.81282683176053	0.9182862023596723	3	1744.6666666666667	4915	0.10703695372093502	0.0	0.0	0.0005713989005378889	0.00210218250820665	0.00037149510237524463	0.0022534729516800454	2.4557276884185666	1.068922962978307	1.1239287111502159	0.3038952269197558	0.529846271258571	0.10999022358426115	0.08367593565359072	0.02877052817684292	0.28140090494640624	0.06700348012554541	0.05568572651126721	0.19289829129121416	0.0007475161992457143	0.9268259509452782	0.16339142134781473	0.48661575224918774	0.16339142134781473	164.30908049925569	34.5809331872731	109.32547807168213	45.571779037831845	152.00957288446125	33.74422284266695	0.5122806353183663	0.1569209423864019	0.04125629187087427	0.017144963702879386	0.11586162500617757	0.04980135461685613	0.03480984437371579	0.020603328666024174	0.02379815335291759	0.01340663580142446	0.03387246974681185	0.014160677538799784	1	43665	|TCGA-EJ-5509-01A-01-BS1_ROI.svs- saveMacro Can't Read 'macro' Image from Slide's Associated Images
diff --git a/histoqc/tests/test_images_tsv_results.py b/histoqc/tests/test_images_tsv_results.py
index db3af47..3d56be3 100644
--- a/histoqc/tests/test_images_tsv_results.py
+++ b/histoqc/tests/test_images_tsv_results.py
@@ -89,10 +89,10 @@ def setUp(self):
 
         # tsv 
         self.rs_name = "results.tsv"
-        # tsv_labels #### '#start_time:', 
-        self.tsv_labels = ['#pipeline:', '#outdir:', '#command_line_args:', '#config_file:', '#dataset:']
+        # tsv_labels #### '#start_time:', '#outdir:',  '#config_file:',
+        self.tsv_labels = ['#pipeline:', '#command_line_args:', '#dataset:']
         # tsv dataset fields
-        self.tsv_dataset_fields = ['filename','comments','image_bounding_box','base_mag','type','levels','height','width','mpp_x','mpp_y','comment','brightestPixels','dark','flat_areas','fatlike_tissue_removed_num_regions','fatlike_tissue_removed_mean_area','fatlike_tissue_removed_max_area','fatlike_tissue_removed_percent','small_tissue_filled_num_regions','small_tissue_filled_mean_area','small_tissue_filled_max_area','small_tissue_filled_percent','small_tissue_removed_num_regions','small_tissue_removed_mean_area','small_tissue_removed_max_area','small_tissue_removed_percent','background_contrast','background_contrast_std','background_dissimilarity','background_dissimilarity_std','background_homogeneity','background_homogeneity_std','background_ASM','background_ASM_std','background_energy','background_energy_std','background_correlation','background_correlation_std','background_tenenGrad_contrast','background_michelson_contrast','background_rms_contrast','background_grayscale_brightness','background_grayscale_brightness_std','background_chan1_brightness','background_chan1_brightness_std','background_chan2_brightness','background_chan2_brightness_std','background_chan3_brightness','background_chan3_brightness_std','blurry_removed_num_regions','blurry_removed_mean_area','blurry_removed_max_area','blurry_removed_percent','spur_pixels','areaThresh','template1_MSE_hist','template2_MSE_hist','template3_MSE_hist','template4_MSE_hist','final_contrast','final_contrast_std','final_dissimilarity','final_dissimilarity_std','final_homogeneity','final_homogeneity_std','final_ASM','final_ASM_std','final_energy','final_energy_std','final_correlation','final_correlation_std','tenenGrad_contrast','michelson_contrast','rms_contrast','grayscale_brightness','grayscale_brightness_std','chan1_brightness','chan1_brightness_std','chan2_brightness','chan2_brightness_std','chan3_brightness','chan3_brightness_std','chan1_brightness_YUV','chan1_brightness_std_YUV','chan2_brightness_YUV','chan2_brightness_std_YUV','chan3_brightness_YUV','chan3_brightness_std_YUV','deconv_c0_mean','deconv_c0_std','deconv_c1_mean','deconv_c1_std','deconv_c2_mean','deconv_c2_std','pixels_to_use','warnings']       
+        self.tsv_dataset_fields = ['filename','comments','image_bounding_box','base_mag','type','levels','height','width','mpp_x','mpp_y','comment','brightestPixels','dark','flat_areas','fatlike_tissue_removed_num_regions','fatlike_tissue_removed_mean_area','fatlike_tissue_removed_max_area','fatlike_tissue_removed_percent','small_tissue_filled_num_regions','small_tissue_filled_mean_area','small_tissue_filled_max_area','small_tissue_filled_percent','small_tissue_removed_num_regions','small_tissue_removed_mean_area','small_tissue_removed_max_area','small_tissue_removed_percent','background_contrast','background_contrast_std','background_dissimilarity','background_dissimilarity_std','background_homogeneity','background_homogeneity_std','background_ASM','background_ASM_std','background_energy','background_energy_std','background_correlation','background_correlation_std','background_tenenGrad_contrast','background_michelson_contrast','background_rms_contrast','background_grayscale_brightness','background_grayscale_brightness_std','background_chan1_brightness','background_chan1_brightness_std','background_chan2_brightness','background_chan2_brightness_std','background_chan3_brightness','background_chan3_brightness_std','blurry_removed_num_regions','blurry_removed_mean_area','blurry_removed_max_area','blurry_removed_percent','spur_pixels','areaThresh','template1_MSE_hist','template2_MSE_hist','template3_MSE_hist','template4_MSE_hist','final_contrast','final_contrast_std','final_dissimilarity','final_dissimilarity_std','final_homogeneity','final_homogeneity_std','final_ASM','final_ASM_std','final_energy','final_energy_std','final_correlation','final_correlation_std','tenenGrad_contrast','michelson_contrast','rms_contrast','grayscale_brightness','grayscale_brightness_std','chan1_brightness','chan1_brightness_std','chan2_brightness','chan2_brightness_std','chan3_brightness','chan3_brightness_std','chan1_brightness_YUV','chan1_brightness_std_YUV','chan2_brightness_YUV','chan2_brightness_std_YUV','chan3_brightness_YUV','chan3_brightness_std_YUV','deconv_c0_mean','deconv_c0_std','deconv_c1_mean','deconv_c1_std','deconv_c2_mean','deconv_c2_std','#pieces_of_tissue','pixels_to_use','warnings']       
 
     def tearDown(self):
         del self.suffixes