diff --git a/.gitignore b/.gitignore
index 61312c8df5bdf7cf5b44f754cd81960c482d58ca..5ac251f57ade35c78aee7ef6eccac065491e33f9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 cgc_spri/spawner
 chopzero_src/chopzero
 manifest.txt.config
+tests/tmp*
diff --git a/tests/bin_search/bin_search.du.sh b/tests/bin_search/bin_search.du.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d1a9e2805782bfd7629f8fd651bacd8d9226c204
--- /dev/null
+++ b/tests/bin_search/bin_search.du.sh
@@ -0,0 +1,101 @@
+#!/bin/bash 
+
+start=0
+end=10000
+orig=$(realpath `which du`) 
+
+protect()
+{
+	stop_at=$1
+	out=$2
+
+	echo "Trying first $stop_at xforms."
+	set -x
+
+	ZAFL_LIMIT_END=$stop_at zafl.sh $orig $out -o zafl:-v --tempdir results/peasoup.bin_search.$stop_at  > $out.ps_output 2>&1
+
+	set +x
+
+}
+
+get_test_result()
+{
+	curdir=$PWD
+	exe=$(realpath $1)
+	touch $2
+	exe_output=$(realpath $2)
+
+	$exe -bh /home/an7s/zafl_umbrella/zipr_umbrella/peasoup_examples/tests/du/data >$exe_output 2>&1
+	echo $? >> $exe_output
+}
+
+
+####################################################################################################
+# should need no changes after here
+####################################################################################################
+
+bin_search()
+{
+	my_start=$1
+	my_end=$2 
+	my_orig=$3
+	my_out_pattern=$4
+	my_exe_pattern=$5
+	my_correct_results=$6
+
+	while [[ $my_start -lt $(($my_end - 1)) ]] 
+	do
+		mid=$(( ($my_start + $my_end) / 2 ))
+		echo "start=$my_start end=$my_end mid=$mid"
+		protect $mid $exe_pattern.$mid
+		get_test_result $exe_pattern.$mid $out_pattern.$mid 
+		cmp $my_correct_results $my_out_pattern.$mid > /dev/null 2>&1 
+		if [ $? != 0 ];  then
+			# diff observed 
+			echo "Detected that $mid generates differences";
+			my_end=$(($mid)) 
+		else
+			echo "Detected that $mid generates the same output";
+			my_start=$(($mid))
+		fi
+
+	done
+	echo "Binary Search Complete. correct=$my_start broken=$my_end"
+
+}
+
+main()
+{
+	out_pattern=results/bin_search.out
+	exe_pattern=results/$(basename $orig).xform
+	correct_results=correct.txt
+
+
+	get_test_result $orig $correct_results
+	protect $start $exe_pattern.$start
+	get_test_result $exe_pattern.$start $out_pattern.$start 
+	cmp correct.txt $out_pattern.$start > /dev/null 2>&1 
+	if [ $? != 0 ];  then
+		echo "starting point also fails test."
+		exit 1
+	fi
+
+	protect $end $exe_pattern.$end
+	get_test_result $exe_pattern.$end $out_pattern.$end 
+	cmp correct.txt $out_pattern.$end > /dev/null 2>&1 
+	if [ $? == 0 ];  then
+		echo "Ending point doesn't fail test!"
+		exit 1
+	fi
+
+	bin_search $start $end $orig $out_pattern $exe_pattern $correct_results
+
+	exit 0
+	
+}
+
+main
+
+
+
+
diff --git a/tests/test_cmds.sh b/tests/test_cmds.sh
index 7d93a01f3576aa653881571984b1bc2973c8f4d0..69837d16aaddc9b04a52b36fea68c8f0a29fa296 100755
--- a/tests/test_cmds.sh
+++ b/tests/test_cmds.sh
@@ -62,8 +62,8 @@ do
 
 
 	progpath=$(which $prog)
-	if [ ! -e $progpath ]; then
-		echo "$prog not found: skipping..."
+	if [ "$progpath" = "" ]; then
+		echo "TEST: Original binary ($prog) not found: skipping..."
 		continue
 	fi
 
@@ -75,6 +75,9 @@ do
 		zafl)
 			zafl.sh $progpath $protected --tempdir $temp_dir > test_${prog}.ps.log 2>&1
 		;;
+		zafl0)
+			ZAFL_LIMIT_END=0 zafl.sh $progpath $protected --tempdir $temp_dir > test_${prog}.ps.log 2>&1
+		;;
 		zafl_rida)
 			zafl.sh $progpath $protected --rida --tempdir $temp_dir > test_${prog}.ps.log 2>&1
 		;;
diff --git a/tools/cfar.sh b/tools/cfar.sh
index 9720ab1680cf3b8415e9a07390a51d6ad550de93..43244b8ae8f9c8842f88488aeb44e828eaa3f492 100755
--- a/tools/cfar.sh
+++ b/tools/cfar.sh
@@ -104,7 +104,7 @@ done
 
 # add default options for cfar which asks ps_analyze to fill in a variant specification for what it did.
 # and also by default dump the IRDB mapping information, useful for debugging.
-new_cmd_line_options+=(--step generate_variant_config=on --step dump_map=on --step-option zipr:"--add-sections true --bss-opts false")
+new_cmd_line_options+=(--step generate_variant_config=on -s rida=on -s meds_static=off --step dump_map=on --step-option zipr:"--add-sections true --bss-opts false")
 
 #
 # figure out a place for ps_analyze to work so we can examine results.
diff --git a/tools/cfar_configs/cfar_probBilr_probP1_probNog_probHeaprand_zipr.sh b/tools/cfar_configs/cfar_probBilr_probP1_probNog_probHeaprand_zipr.sh
index d98c46483e704f1c92294e53a99ed5ac3af89b4f..b03787ea415ea187221b5de47f946133f43cb175 100755
--- a/tools/cfar_configs/cfar_probBilr_probP1_probNog_probHeaprand_zipr.sh
+++ b/tools/cfar_configs/cfar_probBilr_probP1_probNog_probHeaprand_zipr.sh
@@ -1,5 +1,5 @@
 #!/bin/bash 
 source $(dirname $0)/../ps_wrapper.source $0
 
-$PEASOUP_HOME/tools/cfar.sh "$@" --backend zipr --step diehard=on --step p1transform=on --config_name $(basename $0 .sh|sed "s/cfar_//") --step move_globals=on --step-option zipr:"--large_only:nog_on true" --step-option move_globals:-d --step-option move_globals:.interp
+$PEASOUP_HOME/tools/cfar.sh "$@" --backend zipr --step diehard=on --step p1transform=on --config_name $(basename $0 .sh|sed "s/cfar_//") --step move_globals=on --step-option zipr:"--large_only:nog_on true" --step-option move_globals:-d --step-option move_globals:.interp --step-option move_globals:--aggressive
 
diff --git a/tools/cfar_configs/cfar_structNoc_structP1Canaries_structNog_probHeaprand_zipr.sh b/tools/cfar_configs/cfar_structNoc_structP1Canaries_structNog_probHeaprand_zipr.sh
index cb7c4b3d7410f776c1c89f0e078b6006e781df4e..ab8d95ccd017c92ec7cd836a83c87a916b373548 100755
--- a/tools/cfar_configs/cfar_structNoc_structP1Canaries_structNog_probHeaprand_zipr.sh
+++ b/tools/cfar_configs/cfar_structNoc_structP1Canaries_structNog_probHeaprand_zipr.sh
@@ -1,4 +1,4 @@
 #!/bin/bash 
 source $(dirname $0)/../ps_wrapper.source $0
 
-$PEASOUP_HOME/tools/cfar.sh "$@" --backend zipr --step diehard=on --step-option zipr:"--zipr:seed $$" --structured_heap --structured_noc --step-option zipr:"--large_only:on true" --structured_p1_canaries  --step p1transform=on --config_name $(basename $0 .sh|sed "s/cfar_//") --step move_globals=on --structured_nog --step-option zipr:"--large_only:nog_on true" --step-option move_globals:-d --step-option move_globals:.interp
+$PEASOUP_HOME/tools/cfar.sh "$@" --backend zipr --step diehard=on --step-option zipr:"--zipr:seed $$" --structured_heap --structured_noc --step-option zipr:"--large_only:on true" --structured_p1_canaries  --step p1transform=on --config_name $(basename $0 .sh|sed "s/cfar_//") --step move_globals=on --structured_nog --step-option zipr:"--large_only:nog_on true" --step-option move_globals:-d --step-option move_globals:.interp --step-option move_globals:--aggressive
diff --git a/tools/generate_mvee_package.sh b/tools/generate_mvee_package.sh
index cc85724aa36c2c743342c1f52c144fda33c7c012..517686bdca6da0299863695568c4825dd3806493 100755
--- a/tools/generate_mvee_package.sh
+++ b/tools/generate_mvee_package.sh
@@ -957,15 +957,24 @@ finalize_json()
 	fi
 	if [ "x"$use_noh = "x--enablenoh" ]; then
 		ld_preload_var="/variant_specific/noh.so:$ld_preload_var"
-		#json_contents="${json_contents//<<ENV>>/\"NUMVARIANTS=$total_variants\",<<ENV>>}"
 	fi
 	# remove leading/trailing spaces.
 	ld_preload_var=${ld_preload_var%% }
 	ld_preload_var=${ld_preload_var## }
 	ld_preload_var="${ld_preload_var}:$extra_preloads"
-
 	json_contents="${json_contents//<<ENV>>/\"LD_PRELOAD=$ld_preload_var\",<<ENV>>}"
 
+	# deal with extra ENV from supplement
+	if [[ ! -z $sad_file ]] ; then
+		sad_contents=$(cat $sad_file |jq .additional_env)
+		if [[ $sad_contents != 'null' ]]; then
+			sad_contents=$(echo "$sad_contents" |head -n -1|tail -n +2)     # trim open and close []'s
+			if [[ ! -z $sad_contents ]]; then
+				json_contents="${json_contents//<<ENV>>/$sad_contents,<<ENV>>}"
+			fi
+		fi
+	fi
+
 	# if we are supposed to include checkpoint/restore lines in the file
 	if [ "x"$use_includecr = "x--include-cr" ]; then
 		echo "Including C/R support."
diff --git a/tools/ps_zipr_rida.sh b/tools/ps_zipr_rida.sh
new file mode 100755
index 0000000000000000000000000000000000000000..91bb54b1a77654ee8a7de530159b7c34279d913c
--- /dev/null
+++ b/tools/ps_zipr_rida.sh
@@ -0,0 +1,4 @@
+#!/bin/bash 
+
+source $(dirname $0)/ps_wrapper.source $0
+$PEASOUP_HOME/tools/ps_analyze.sh "$@" --backend zipr -s meds_static=off -s rida=on