diff --git a/iexcode/macros/commissioning.py b/iexcode/macros/commissioning.py
index 167a5a8d41b3c7af328421e3b1f3e58c543622fd..e350fab8e5ccfa01c52d00990f720e4d08cc4a2f 100644
--- a/iexcode/macros/commissioning.py
+++ b/iexcode/macros/commissioning.py
@@ -604,8 +604,7 @@ def M0M1_steering(h_position,v_position,verbose=False):
     current_pitch = FMB_mirror_get(1,verbose=False)[4]
     new_pitch = current_pitch+pitch_delta
 
-    message =  '\nSlit-2 slit: should always be centered vertically, adjust M1 roll, horizontally adjust pitch if too far off'
-
+    message =  '\nSlit-2 slit: should always be centered vertically, adjust M1 roll, \nhorizontally adjust pitch if too far off'
     message +="\n   - vertical steering adjustment = "+str(v_steering) + " => new RZ = "+str(new_roll)
     if abs(h_position) > 1:
         message += "\n   - horizontal: error to large, need to steer M1 pitch => FMB_mirror_move(1,'RY',"+str(new_pitch)+")"
diff --git a/iexcode/macros/start_of_the_week.py b/iexcode/macros/start_of_the_week.py
index f4bc437c3e55deb6c471de4da875e48f2a9b04da..a1697daae80074d6ae9f0a9805dfc4e359bf1d4d 100644
--- a/iexcode/macros/start_of_the_week.py
+++ b/iexcode/macros/start_of_the_week.py
@@ -41,6 +41,8 @@ def sotw(grt,branch,wait=False,**kwarg):
 
     StartOfTheWeek(grt,branch,wait=wait,**kwarg)
 
+
+
 def default_detectors(branch):
     """
     returns  detCA4,detH,detV,detDiode
@@ -274,108 +276,144 @@ def sotw_wire(detH,detV,**kwargs):
     flag = interactive_fct()
     return flag     
 
-def sotw_slit_vs_mono(slit_name,**kwargs):
-    """
-    
-    **kwargs
-        hv_list = [470,505]
-        !!!detDiode need to specify detDiode
-    """
-    detDiode=kwargs['detDiode']
-    h=None
-    v=None
-    flag =2
-    while flag > 1:
-        #scanning
-        if kwargs['monoVslit_quick']:
-            for hv in kwargs['hv_list']:
-                kwargs.update({'mono_energy':hv})
-                monoVslit_quick_scan(slit_name,**kwargs)
-        else:
-            monoVslit_full_profile_scan(slit_name,**kwargs)
-        #plotting
-        c = mono_grating_density_get()/1200
-
-        scanNum_v = last_mda()-1
-        scanNum_h = last_mda()
-
-        if kwargs['monoVslit_quick']:
-            flagfit, h = interactive_fit_mda('H_center',scanNum_h,detDiode,1,'gauss',xrange=[None,None])
-            if flagfit == '':
-                return
-            flagfit, v = interactive_fit_mda('V_center',scanNum_v,detDiode,c,'gauss',xrange=[None,None])
-            if flagfit == '':
-                return
-        flag = interactive_fct()
-        
-        print('\nBeam position - '+slit_name[-2:]+':')
-        print(f"   - vertical:   V = {round(v,3)}")
-        print(f"   - horizontal: H = {round(h,3)}")
-        
-        if slit_name == 'slit2B':
-            #beam steering calculations
-            new_roll = M0M1_steering(h,v)
-        
-            foo = input('\nDo you want to steer M1 (y or n)?')
-            if foo[0].lower() == 'y':
-                new_roll = input2float('New M1 roll value => ',new_roll)
-                try:
-                    FMB_mirror_move(1,'RZ',new_roll)
-                    sleep(2)
-                    FMB_mirror_get(1)
-                    
-                    #update M1 dictionary
-                    foo=input('Do you want to update the M1 (y or n)? >')
-                    if foo[0].lower() == 'y':
-                        try:
-                            #update_mirror_dict(1)
-                            print_warning_message("need to debug update_mirror_dict, do by hand")
-                        except:
-                            print_warning_message("couldn't update the mirror dictionary, do by hand")
-                        if flag == '':
-                            return flag
-                    flag == 2
-                except:
-                    print('\invalid input; unable to move M1')
-                    flag = interactive_fct()     
-                print('\nrepeating scans...')     
-
-
-                        
-    return flag,v,h
-
-def sotw_slit_positions(grt,**kwargs):
+def sotw_slit_positions(**kwargs):
     """
     need to specify detDiode
     **kwargs
         hv_list = [470,505]
         slit_list = ['slit2B','slit1A']
     """
-    kwargs.setdefault('hv_list',[470,505])
+    kwargs.setdefault('hv_list',[470,508])
     kwargs.setdefault('slit_list',['slit2B','slit1A'])
     kwargs.setdefault('monoVslit_quick',True)
 
+    grt = grating_get()
     detDiode= kwargs['detDiode']
+
     for slit_name in kwargs['slit_list']:
         message={'slit2B': 'M1 alignment and slit center','slit1A':'slit center'}
         print('\n---------- Scanning '+slit_name+':\n') 
         message[slit_name]
         list_position = [grt,0,0,0,0]
 
-        flag,v,h =  sotw_slit_vs_mono(slit_name,**kwargs)
-        if flag == '':
-            return flag
+        flag = 2
+        while flag >1:
+            #scanning
+            sotw_slit_vs_mono_scan(slit_name,**kwargs)
+
+            #plotting the blue shifted
+            scanNum_v = last_mda()-1
+            scanNum_h = last_mda()
+
+            v,h =  sotw_slit_vs_mono_plot(scanNum_v,scanNum_h,detDiode)
+            try:
+                print('\nBeam position - '+slit_name[-2:]+':')
+                print(f"   - vertical:   V = {round(v,3)}")
+                print(f"   - horizontal: H = {round(h,3)}")
+            except:
+                print(v,h)
+
+            flag = interactive_fct()
+            if flag == '':
+                break
+
+            if slit_name == 'slit2B':
+                sotw_M0M1_steering(h,v)
+            flag = interactive_fct()
+            if flag == '':
+                break
+    
+        if slit_name == 'slit2B':
+            sotw_M0M1_update_dictionary()
+
+        # filling in values for slit dictionary
+        if slit_name == 'slit2B':
+            list_position[2] = v
+            list_position[1] = h 
+        elif slit_name == 'slit1A':
+            list_position[4] = v
+            list_position[3] = h
+
+    #update slit dictionary 
+    print('\nBeam center fit @ ['+grt+',2V,2H,1V,1H]:'+str(list_position))      
+    sotw_update_slit_dictionary(list_position)    
+
+
+def sotw_slit_vs_mono_scan(slit_name,**kwargs):
+    """
+    
+    **kwargs
+        hv_list = [470,505]
+        !!!detDiode need to specify detDiode
+    """
+    if kwargs['monoVslit_quick']:
+        for hv in kwargs['hv_list']:
+            kwargs.update({'mono_energy':hv})
+            monoVslit_quick_scan(slit_name,**kwargs)
+    else:
+        monoVslit_full_profile_scan(slit_name,**kwargs)
+        
 
-    if slit_name == 'slit2B':
-        list_position[2] = v
-        list_position[1] = h 
-    elif slit_name == 'slit1A':
-        list_position[4] = v
-        list_position[3] = h
+def sotw_slit_vs_mono_plot(scanNum_v,scanNum_h,detDiode):
+    """
+    plots the line scans from monoVslit_quick_scan
+
+    """
+
+    h=None
+    v=None
+    c = mono_grating_density_get()/1200
+
+    flagfit, h = interactive_fit_mda('H_center',scanNum_h,detDiode,1,'gauss',xrange=[None,None])
+    if flagfit == '':
+        return v,h
+    
+    flagfit, v = interactive_fit_mda('V_center',scanNum_v,detDiode,c,'gauss',xrange=[None,None])
+    if flagfit == '':
+        return v,h
+                        
+    return v,h
+
+
+
+def sotw_M0M1_update_dictionary():
+    """
+    interactive to update the slit dictionary
+    """
+    #update M1 dictionary
+    foo=input('Do you want to update the M1 (y or n)? >')
+    if foo[0].lower() == 'y':
+        try:
+            #update_mirror_dict(1)
+            print_warning_message("need to debug update_mirror_dict, do by hand")
+        except:
+            print_warning_message("couldn't update the mirror dictionary, do by hand")
+
+def sotw_M0M1_steering(h,v):
+    """
+    calculate the required steering and steers M1
+    """
+
+    #beam steering calculations
+    new_roll = M0M1_steering(h,v)
+        
+    foo = input('\nDo you want to steer M1 (y or n)?')
+    if foo[0].lower() == 'y':
+        print('calculated roll: '+str(new_roll))
+        new_roll = input2float('New M1 roll value => ',new_roll)
+        try:
+            FMB_mirror_move(1,'RZ',new_roll)
+            sleep(2)
+            FMB_mirror_get(1)
+        except:
+            print('\invalid input; unable to move M1')
+ 
 
-    #update slit dictionary
-    print('\nBeam center fit @ ['+grt+',2V,2H,1V,1H]:'+str(list_position))
+def sotw_update_slit_dictionary(*list_position):
+    """
+    updates the slit dictionary with the values in list_position
 
+    """
     foo=input('Do you want to update the slit dictionary (y or n)? >')
     if foo[0].lower() == 'y':
         slit_list=input('do you want to use '+str(list_position)+' (y or n)? >')
@@ -388,7 +426,36 @@ def sotw_slit_positions(grt,**kwargs):
             try:
                 update_slit_dict()
             except:
-                print_warning_message(" update_slit_dict(list_position)") 
+                print_warning_message(" update_slit_dict(list_position)")  
+
+
+def sotw_check_flux(**kwargs):
+    """
+    does a monoscan to check flux and ID calibration
+
+    does not put any diagnostics in 
+    """
+    kwargs.setdefault('hv',500)
+    kwargs.setdefault('sound',True)
+
+    detDiode= kwargs['detDiode']
+    hv = kwargs['hv']
+
+    #scanning
+    slit(50)
+    energy(hv)
+    hv_start = hv*.95
+    hv_stop = hv*1.05
+    hv_step = round(1.0*hv/500,0)
+    kwargs.update({'comment':'Mono Scan @ '+str(hv)+' eV'})
+    scanmono(hv_start,hv_stop,hv_step,**kwargs)
+    if kwargs['sound']:
+        play_sound()
+
+    #plotting
+    scanNum = last_mda()
+    plt.plot(scanNum,detDiode,flux=3)
+    plt.show()
 
 def StartOfTheWeek(grt,branch,wait=False,**kwargs):
     """
@@ -401,13 +468,14 @@ def StartOfTheWeek(grt,branch,wait=False,**kwargs):
         repeat: True/False
             True => doesn't do any initialization 
             False => resets everything (switches branch and grating)
-        scanType = ['slit1','wire','monoVslit','flux',]
+        scanType=['slit1','wire','monoVslit','flux']
         sound: plays sound when a scantype is completed, default => True
+        
         # for individiual scantypes
         slit1A_extended: to take a larger range, default => False
         monoVslit_quick: 
-            True => takes a single line cut (defaule)
-            False => 
+            True => takes a single line cut (default)
+            False => does 2D profile
         
        """
     kwargs.setdefault('mode','RCP')
@@ -492,16 +560,10 @@ def StartOfTheWeek(grt,branch,wait=False,**kwargs):
         print("\n\n================== Check Flux:")
         flag=2
         while flag==2:
-            check_flux_scan(stay=True)
-            scanNum = last_mda()
-            try:
-                plot_mda(scanNum,detDiode,Flux=3);plt.show()
-            except:
-                print('Unable to plot. Try:') 
-                print("plot_mda("+str(scanNum)+","+str(detDiode)+",flux=3);plt.show()")  
+            sotw_check_flux(**kwargs)
             flag=interactive_fct()
-        if flag == '':
-            return
+            if flag == '':
+                break
 
     diagnostics_all_out()