diff --git a/Sieve/Sieve_VisB.mch b/Sieve/Sieve_VisB.mch
index 30f001a6340cae2265df1cd3cc9160dbdd411ac0..fc09f30f97634e880dfb3018914dda085423c7ed 100644
--- a/Sieve/Sieve_VisB.mch
+++ b/Sieve/Sieve_VisB.mch
@@ -5,23 +5,36 @@ DEFINITIONS
   SET_PREF_MININT == -1;
   MINLIM == MAXINT-1;
   GOAL == (cur=1 & numbers /= {});
-  VISB_SVG_FILE == "";
+  VISB_JSON_FILE == "";
   VISB_SVG_BOX == rec(height:220, width:220, viewBox:"0 0 220 220");
   vsz == 20;
+  "LibrarySVG.def"; "CHOOSE.def";
+  VISB_SVG_CONTENTS == '''
+  <style>
+        .tl-dps {
+            stroke : red;
+            stroke-linecap: butt;
+            opacity : 0.8
+        }
+  </style>
+''';
+  VISB_SVG_OBJECTS3 == rec(`id`:"line", svg_class:"line", class:MU({"tl-dps"}),
+           title : ```Track Line ```, visibility:MU({"visible"}),
+              `stroke-dasharray`:svg_set_dasharray({1,3,4,5,6,7,8,9,10,50,51}), //```0 0 3 10000```,
+                            x1:0,y1:210, x2:220,y2:210);
   VISB_SVG_OBJECTS2 == {x,y•x:0..9 & y:0..9 | rec(`id`:("nr",x,y), svg_class:"text",
                                                  x:vsz+x*vsz, y:vsz+y*vsz, `font-size`:10,
                                                  text:x+y*10)};
   VISB_SVG_OBJECTS1 == {x,y•x:0..9 & y:0..9 | rec(`id`:("rec",x,y), svg_class:"rect",
                                                  x:15+x*vsz, y:5+y*vsz,
-                                                 stroke:"green", `stroke-width`:1.5,fill:"white",
-                                                 width:vsz-1, height:vsz-1)};
-  VISB_SVG_UPDATES2 == {x,y•x:0..9 & y:0..9 | rec(`id`:("rec",x,y),
-                                                   stroke:IF x+y*10=cur THEN "red"
+                                                 `stroke-width`:1.5,
+                                                 width:vsz-1, height:vsz-1,
+                                                 stroke:IF x+y*10=cur THEN "red"
                                                           ELSIF x+y*10:numbers THEN "green" ELSE "gray" END,
-                                                   fill: IF x+y*10:numbers THEN "white" ELSE "gray" END)};
+                                                   fill: IF x+y*10:numbers THEN "white" ELSE "lightgray" END)};
 VARIABLES numbers,cur, limit
 INVARIANT
- numbers <: INTEGER & cur:NATURAL1 & limit:NATURAL1
+  numbers <: INTEGER & cur:NATURAL1 & limit:NATURAL1
 INITIALISATION numbers := {} || cur := 1 || limit := 1
 OPERATIONS
   StartSieve(lim) = PRE cur=1 & lim>MINLIM & lim <= MAXINT THEN