diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py
index 642d2114e4dc4036b97f9185754e5fafc314e5a9..867a3fe8deed81bd7a61999851c6c400507ed913 100644
--- a/modules/aeolus/aeolus_amv.py
+++ b/modules/aeolus/aeolus_amv.py
@@ -465,18 +465,15 @@ def run_best_fit_all():
                  'gfs.19112812_F012.h5',
                  'gfs.19112912_F012.h5']
 
-    amvs_list = []
-    bf_list = []
-    raob_match_list = []
-    bf_gfs_list = []
-    amv_prod_list = []
+    out_list = []
     for k, file in enumerate(raob_files):
         raob_dct, ts = get_raob_dict_cdf(raob_dir+file)
         m_d = match_amvs_to_raobs(raob_dct, ts, amv_files=amv_files)
-        amvs_list, bf_list, raob_match_list, bf_gfs_list = run_best_fit(m_d, raob_dct, gfs_dir+gfs_files[k],
-                                   amvs_list=amvs_list, bf_list=bf_list, raob_match_list=raob_match_list, bf_gfs_list=bf_gfs_list)
-        prd_dct = get_product_at_locs(m_d, ts, prd_files, amv_prod_list=amv_prod_list)
-        analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list)
+        dct = run_best_fit(m_d, raob_dct, gfs_dir+gfs_files[k])
+        out_list.append(dct)
+        prd_dct = get_product_at_locs(m_d, ts, prd_files)
+
+        #analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list)
 
         # amvs = get_amvs(amv_files, ts)
         # amvs_list.append(amvs)
@@ -484,12 +481,12 @@ def run_best_fit_all():
         # bf_list.append(bfs)
 
     # bin_ranges, bin_pres, bin_spd, bin_dir = analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list)
-    bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit_all(amvs_list, bf_list, bin_size=100)
+    # bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit_all(amvs_list, bf_list, bin_size=100)
 
-    return bin_ranges, bin_pres, bin_spd, bin_dir
+    return out_list
 
 
-def get_product_at_locs(raob_to_amv_dct, ts, files, amv_prod_list=[], filepath=None):
+def get_product_at_locs(raob_to_amv_dct, ts, files, filepath=None):
     keys = list(raob_to_amv_dct.keys())
     m_dct = {}
 
@@ -521,7 +518,6 @@ def get_product_at_locs(raob_to_amv_dct, ts, files, amv_prod_list=[], filepath=N
             aaa[:, k] = param_nd[:, ll[k], cc[k]]
 
         m_dct[key] = aaa
-        amv_prod_list.append(aaa)
 
     ds.close()
 
@@ -632,7 +628,8 @@ def run_best_fit2(raob_to_amv_dct, raob_dct, gfs_filename=None):
     return bfs_dct
 
 
-def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None, amvs_list=[], bf_list=[], raob_match_list=[], bf_gfs_list=[]):
+def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None):
+    out_dct = {}
     keys = list(raob_to_amv_dct.keys())
 
     do_gfs_best_fit = False
@@ -667,6 +664,9 @@ def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None, amvs_list=[], bf_
         amvs = raob_to_amv_dct.get(key)
         amvs_list.append(amvs)
         num_amvs = amvs.shape[1]
+        bf_list = []
+        raob_match_list = []
+        bf_gfs_list = []
         for i in range(num_amvs):
             amv_lon = amvs[0, i]
             amv_lat = amvs[1, i]
@@ -689,7 +689,9 @@ def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None, amvs_list=[], bf_
                 bf = best_fit(amv_spd, amv_dir, amv_prs, amv_lat, amv_lon, gfs_spd[key_idx], gfs_dir[key_idx], gfs_press)
                 bf_gfs_list.append(bf)
 
-    return amvs_list, bf_list, raob_match_list, bf_gfs_list
+        out_dct[key] = (np.transpose(amvs, axes=[1, 0]), np.array(bf_list), np.array(raob_match_list), np.array(bf_gfs_list))
+
+    return out_dct
 
 
 def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list):
@@ -704,6 +706,12 @@ def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list):
         amv_prd = np.concatenate(amv_prod_list, axis=1)
         amv_prd = np.transpose(amv_prd, axes=[1, 0])
 
+    vld = amv_prd[:, 2] > 0
+
+    #print(np.histogram(amv_prd[:, 0]))
+    #print(np.histogram(amv_prd[:, 1]))
+    print(np.histogram(amv_prd[vld, 2], bins=20))
+
     good_amvs = amvs
     num_good = good_amvs.shape[0]
     didx = 6
@@ -1028,7 +1036,7 @@ def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list):
               .format(int(x_values[i]), num_pres[i], np.average(np.abs(bin_pres[i])), np.average(bin_pres[i]),
                       np.average(np.abs(bin_spd[i])), np.average(bin_spd[i]), np.average(np.abs(bin_dir[i])), np.average(bin_dir[i])))
 
-    return bin_ranges, bin_pres, bin_spd, bin_dir
+    #return bin_ranges, bin_pres, bin_spd, bin_dir
 
 
 def compare_amvs_bestfit_all(amvs_list, bfs_list, bin_size=200):