diff --git a/source/flo/__init__.py b/source/flo/__init__.py
index 7e75afe47a0a67f05c757292e94950c4f510a498..4eea9867f0124ab2c1d44a262e8f0081ad6e85d1 100644
--- a/source/flo/__init__.py
+++ b/source/flo/__init__.py
@@ -28,8 +28,8 @@ For Aqua AIRS/MODIS fusion, example inputs are...
 For Suomi-NPP CrIS/VIIRS fusion, example inputs are...
 
     * NASA VIIRS L1B geolocation and radiometric files:
-        VGEOM_snpp_d20150417_t143600_c20170401181622.nc
-        VL1BM_snpp_d20150417_t143600_c20170401181415.nc
+        VNP03MOD.A2015107.1436.001.2017314224025.uwssec.nc
+        VNP02MOD.A2015107.1436.001.2017314223846.uwssec.nc
 
     * NASA CrIS L1B files
         SNDR.SNPP.CRIS.20150417T1436.m06.g147.L1B_NSR.std.v01_00_00.T.161217000158.nc
@@ -161,17 +161,18 @@ class FUSION_MATLAB(Computation):
         self._add_modis_l1b_geo_input(context, task)
         self._add_modis_l1b_m_input(context, task)
         self._add_airs_l1b_input(context, task)
+        #self._add_v2c_inputs(viirstpw, context, task)
 
     def _add_viirs_l1b_geo_input(self, context, task):
         satellite = context['satellite']
         granule = context['granule']
-        vgeom = dawg_catalog.file(satellite, 'VGEOM', granule, version='2.0.2')
+        vgeom = dawg_catalog.file(satellite, 'VNP03MOD', granule, version='2.0.2')
         task.input('geo', vgeom)
 
     def _add_viirs_l1b_m_input(self, context, task):
         satellite = context['satellite']
         granule = context['granule']
-        vl1b = dawg_catalog.file(satellite, 'VL1BM', granule, version='2.0.2')
+        vl1b = dawg_catalog.file(satellite, 'VNP02MOD', granule, version='2.0.2')
         task.input('l1b', vl1b)
 
     def _add_cris_l1b_input(self, context, task):
@@ -187,6 +188,43 @@ class FUSION_MATLAB(Computation):
             LOG.debug('CrIS granule {}: {} -> {}'.format(idx, cris_file.begin_time, cris_file.end_time))
             task.input('sounder_{}'.format(idx),  cris_file)
 
+    #def _add_cris_viirs_collocation_input(self, context, task):
+        #satellite = context['satellite']
+        #granule = context['granule']
+        #granule_length = timedelta(minutes=6)
+        #cris_interval = TimeInterval(granule, granule+granule_length-timedelta(seconds=1))
+        #cris = dawg_catalog.files(satellite, 'CL1B', cris_interval, version='v1.0rc8')
+        #if cris == []:
+            #raise WorkflowNotReady('Unable to find matching CrIS granules for interval {}'.format(cris_interval))
+
+        #for idx, cris_file in enumerate(cris):
+            #LOG.debug('CrIS granule {}: {} -> {}'.format(idx, cris_file.begin_time, cris_file.end_time))
+            #task.input('sounder_{}'.format(idx),  cris_file)
+
+    #def _add_v2c_inputs(self, product, context, task):
+        #"""
+        #Create and add inputs for c2v transposed inputs overlapping granule
+        #6-min interval.
+        #"""
+        #collo = product.input('collopak')
+        #nucaps = product.input('cspp-nucaps')
+        ## XXX: SDR types are based on other inputs
+        #cris_sdr_type = '{}-{}'.format(nucaps.options['sdr_type'],
+                                       #nucaps.options['cris_version'])
+        ## Here we use the viirs version from our other input
+        #viirs = product.input('viirs_l1')
+        #viirs_sdr_type = 'l1-{}'.format(viirs.version)
+
+        #v2c = ViirsCrisCollocation()
+        #ctx = v2c.find_contexts(l1b_interval(context['granule']),
+                                #cris_sdr_type=cris_sdr_type,
+                                #viirs_sdr_type=viirs_sdr_type,
+                                #version=collo.version)[0]
+        #if ctx['viirs_granule'] != ctx['cris_granule']:
+            #raise WorkflowNotReady('TPW: Granule times must be the same', ctx)
+
+        #task.input('v2c', v2c.dataset('out').product(ctx))
+
     def build_task_snpp(self, context, task):
         '''
         Build up a set of inputs for a single context
@@ -236,7 +274,7 @@ class FUSION_MATLAB(Computation):
 
         vgeom_file = inputs['geo']
 
-        crisviirs = support_software.lookup('collopak', version='0.1.65')
+        crisviirs = support_software.lookup('collopak')
         crisviirs_exe = pjoin(crisviirs.path,'bin/crisviirs')
         for cris_file in cris_files:
             cmd = '{} {} {} > /dev/null'.format(crisviirs_exe, cris_file, vgeom_file)
@@ -244,7 +282,10 @@ class FUSION_MATLAB(Computation):
             LOG.info('cmd = {}'.format(cmd))
             runscript(cmd, requirements=[])
 
-        return glob('colloc.*.nc')
+        collo_files = glob('colloc.*.nc')
+        collo_files.sort()
+
+        return collo_files
 
     def airs_modis_collocation(self, inputs):
 
@@ -257,7 +298,7 @@ class FUSION_MATLAB(Computation):
 
         modis_file = inputs['geo']
 
-        airsmodis = support_software.lookup('collopak', version='0.1.65')
+        airsmodis = support_software.lookup('collopak')
         airsmodis_exe = pjoin(airsmodis.path,'bin/airsmod')
         for airs_file in airs_files:
             cmd = '{} {} {} > /dev/null'.format(airsmodis_exe, airs_file, modis_file)
@@ -265,7 +306,10 @@ class FUSION_MATLAB(Computation):
             LOG.info('cmd = {}'.format(cmd))
             runscript(cmd, requirements=[])
 
-        return glob('colloc.*.nc')
+        collo_files = glob('colloc.*.nc')
+        collo_files.sort()
+
+        return collo_files
 
     def run_fusion_matlab(self, geo_file, l1b_file, sounder_files, collo_files, **kwargs):
         '''
@@ -277,7 +321,9 @@ class FUSION_MATLAB(Computation):
         fusion_binary = kwargs['fusion_binary']
         out_dir = kwargs['out_dir']
         matlab_file_glob = kwargs['matlab_file_glob']
+        matlab_file_dt_filespec = kwargs['matlab_file_dt_filespec']
         env = kwargs['env']
+        granule = kwargs['granule']
 
         rc_fusion = 0
 
@@ -303,6 +349,8 @@ class FUSION_MATLAB(Computation):
             LOG.debug("cmd = \\\n\t{}".format(cmd.replace(' ',' \\\n\t')))
             rc_fusion = 0
             runscript(cmd, requirements=[], env=env)
+            #shutil.copy('/mnt/sdata/geoffc/fusion_matlab/work/test_for_gala/CrIS_VIIRS-VNP02MOD/outputs/tmpeajDcu/fusion_viirs_15107.1754.001.2.mat',current_dir) # DEBUG
+            #shutil.copy('/mnt/sdata/geoffc/fusion_matlab/work/test_for_gala/AIRS_MODIS/fusion_modis_2015107.1755.mat',current_dir) # DEBUG
         except CalledProcessError as err:
             rc_fusion = err.returncode
             LOG.error("Matlab binary {} returned a value of {}".format(fusion_binary, rc_fusion))
@@ -313,8 +361,9 @@ class FUSION_MATLAB(Computation):
         if len(matlab_file) != 0:
             matlab_file = matlab_file[0]
             LOG.debug('Found Matlab file "{}", moving to {}...'.format(matlab_file, out_dir))
-            shutil.move(matlab_file, out_dir)
-            matlab_file = glob(pjoin(out_dir, matlab_file))[0]
+            new_matlab_name = datetime.strftime(granule, matlab_file_dt_filespec)
+            shutil.move(matlab_file, pjoin(out_dir, new_matlab_name))
+            matlab_file = glob(pjoin(out_dir, new_matlab_name))[0]
         else:
             LOG.error('There are no Matlab files "{}" to convert, aborting'.format(matlab_file_glob))
             rc_fusion = 1
@@ -332,21 +381,12 @@ class FUSION_MATLAB(Computation):
         bin_dir = kwargs['bin_dir']
         anc_dir = kwargs['anc_dir']
         out_dir = kwargs['out_dir']
-        matlab_file_dt_str = kwargs['matlab_file_dt_str']
-        matlab_file_dt_filespec = kwargs['matlab_file_dt_filespec']
         conversion_bin = kwargs['conversion_bin']
         env = kwargs['env']
         satellite = kwargs['satellite']
-        granule = kwargs['granule']
 
         rc_fusion = 0
 
-        dt = datetime.strptime(basename(matlab_file), matlab_file_dt_filespec)
-        dt_string = dt.strftime(matlab_file_dt_str)
-
-        LOG.debug('dt_string = {}'.format(dt_string))
-        LOG.debug('granule = {}'.format(granule))
-
         # Create the output directory
         current_dir = os.getcwd()
 
@@ -402,23 +442,28 @@ class FUSION_MATLAB(Computation):
 
         # Move the final fused file to the work directory
         if satellite=='snpp':
-            if 'VL1BM' in l1b_file:
-                fused_l1b_file_new = dt.strftime('VNP02FSN.A%Y%j.%H%M.000.CTIME.nc')
-            elif 'VNP02MOD' in l1b_file:
-                fused_l1b_file_new = 'VNP02FSN.{}.CTIME.hdf'.format('.'.join(l1b_file.split('.')[1:4]))
-            else:
-                pass
+            fused_l1b_file_new = 'VNP02FSN.{}.CTIME.nc'.format('.'.join(l1b_file.split('.')[1:4]))
         if satellite=='aqua':
             fused_l1b_file_new = 'MYD02FSN.{}.CTIME.hdf'.format('.'.join(l1b_file.split('.')[1:4]))
 
+        # Create a common creation timestamp for the matlab and HDF4/NetCDF4 files
         dt_create = datetime.utcnow()
-        fused_l1b_file_new = fused_l1b_file_new.replace('CTIME', dt_create.strftime('%Y%j%H%M%S'))
 
-        LOG.debug('Moving "{}" to "{}" ...'.format(fused_l1b_file, fused_l1b_file_new))
-        shutil.move(fused_l1b_file, pjoin(current_dir, fused_l1b_file_new))
+        LOG.debug('Current dir is {}'.format(os.getcwd()))
 
+        # Move the HDF4/NetCDF4 file to it's new filename
+        fused_l1b_file_new = fused_l1b_file_new.replace('CTIME', dt_create.strftime('%Y%j%H%M%S'))
+        LOG.debug('Moving "{}" to "{}" ...'.format(fused_l1b_file, pjoin(current_dir, fused_l1b_file_new)))
+        shutil.move(fused_l1b_file, pjoin(current_dir, fused_l1b_file_new))
         fused_l1b_file = glob(pjoin(current_dir, fused_l1b_file_new))[0]
 
+        # Move the matlab file to it's new filename
+        matlab_file_new = basename(matlab_file).replace(
+                '.mat', '{}.mat'.format(dt_create.strftime('.%Y%j%H%M%S')))
+        LOG.debug('Moving "{}" to {}...'.format(matlab_file, pjoin(dirname(current_dir), matlab_file_new)))
+        shutil.move(matlab_file, pjoin(dirname(current_dir), matlab_file_new))
+        matlab_file = glob(pjoin(dirname(current_dir), matlab_file_new))[0]
+
         # Remove the fused_outputs directory
         LOG.debug('Removing the fused_outputs dir {} ...'.format(out_dir))
         shutil.rmtree(out_dir)
@@ -572,13 +617,13 @@ class FUSION_MATLAB(Computation):
 
         if satellite=='snpp':
             kwargs['fusion_binary'] = 'run_imagersounderfusion_V.sh'
-            kwargs['matlab_file_glob'] = 'fusion_viirs_*_t*.mat'
+            kwargs['matlab_file_glob'] = 'fusion_viirs_*.mat'
             kwargs['matlab_file_dt_str'] = '%Y%m%d_t%H%M%S'
             kwargs['matlab_file_dt_filespec'] = 'fusion_viirs_{}.mat'.format(kwargs['matlab_file_dt_str'])
             kwargs['conversion_bin'] = pjoin(envroot, 'bin', 'l1b-fusion-viirs-cris')
         elif satellite=='aqua':
             kwargs['fusion_binary'] = 'run_imagersounderfusion_M.sh'
-            kwargs['matlab_file_glob'] = 'fusion_modis_*.*.mat'
+            kwargs['matlab_file_glob'] = 'fusion_modis_*.mat'
             kwargs['matlab_file_dt_str'] = '%Y%j.%H%M'
             kwargs['matlab_file_dt_filespec'] = 'fusion_modis_{}.mat'.format(kwargs['matlab_file_dt_str'])
             kwargs['conversion_bin'] = pjoin(envroot, 'bin', 'l1b-fusion-modis-airs')