diff --git a/pyglance/glance/compare.py b/pyglance/glance/compare.py
index e3654a853c4341c4f13994a8ba53e77a626df0f1..7c9ea636caa025904424504418122ad44f6a7b3c 100644
--- a/pyglance/glance/compare.py
+++ b/pyglance/glance/compare.py
@@ -163,26 +163,36 @@ def _resolve_names(fileAObject, fileBObject, defaultValues,
             # check each of the names the user asked for to see if it is either in the list of common names
             # or, if the user asked for an alternate name mapping in file B, if the two mapped names are in
             # files A and B respectively
-            for name in requestedNames : # TODO rekey on display name?
+            for dispName in requestedNames :
                 
-                name_b = name
-                if ('alternate_name_in_B' in requestedNames[name]) :
-                    name_b = requestedNames[name_b]['alternate_name_in_B']
+                # hang on to info on the current variable
+                currNameInfo = requestedNames[dispName] 
                 
-                if (name in fileCommonNames) | \
-                        (requestedNames[name].has_key('alternate_name_in_B') and
-                         (name   in nameComparison['uniqueToAVars']) and
-                         (name_b in nameComparison['uniqueToBVars'])) :
-                    finalNames[name] = defaultValues.copy()
-                    finalNames[name]['variable_name'] = name
-                    finalNames[name].update(requestedNames[name])
+                # get the variable name 
+                if 'variable_name' in currNameInfo :
+                    name = currNameInfo['variable_name']
+                    name_b = name
                     
-                    # load the missing value if it was not provided
-                    if finalNames[name]['missing_value'] is None :
-                        finalNames[name]['missing_value']          = fileAObject.missing_value(name)
-                    if not('missing_value_alt_in_b' in finalNames[name]) or \
-                        (finalNames[name]['missing_value_alt_in_b'] is None) :
-                        finalNames[name]['missing_value_alt_in_b'] = fileBObject.missing_value(name_b)
+                    if ('alternate_name_in_B' in currNameInfo) :
+                        name_b = currNameInfo['alternate_name_in_B']
+                    
+                    if (name in fileCommonNames) | \
+                            (currNameInfo.has_key('alternate_name_in_B') and
+                             (name   in nameComparison['uniqueToAVars']) and
+                             (name_b in nameComparison['uniqueToBVars'])) :
+                        finalNames[dispName] = defaultValues.copy() 
+                        finalNames[dispName]['display_name'] = dispName
+                        finalNames[dispName].update(currNameInfo)
+                        
+                        # load the missing value if it was not provided
+                        if finalNames[dispName]['missing_value'] is None :
+                            finalNames[dispName]['missing_value']          = fileAObject.missing_value(name)
+                        if not('missing_value_alt_in_b' in finalNames[dispName]) or \
+                           (finalNames[dispName]['missing_value_alt_in_b'] is None) :
+                            finalNames[dispName]['missing_value_alt_in_b'] = fileBObject.missing_value(name_b)
+                else :
+                    LOG.warn('No technical variable name was given for the entry described as "' + dispName + '". ' +
+                             'Skipping this variable.')
     else:
         # format command line input similarly to the stuff from the config file
         print (requestedNames)
@@ -883,30 +893,28 @@ python -m glance
         
         # go through each of the possible variables in our files
         # and make a report section with images for whichever ones we can
-        for name in finalNames:
+        for varKey in finalNames:
             
             # pull out the information for this variable analysis run
-            varRunInfo = finalNames[name].copy()
+            varRunInfo = finalNames[varKey].copy()
             
             # make some local copies of our name info for display and labeling
-            displayName = name
-            if (varRunInfo.has_key('display_name')) :
+            technicalName = varRunInfo['variable_name']
+            displayName   = technicalName
+            if 'display_name' in varRunInfo :
                 displayName = varRunInfo['display_name']
-            explanationName = name
-            if (varRunInfo.has_key('alternate_name_in_B')) :
-                explanationName = explanationName + " / " + varRunInfo['alternate_name_in_B']
-            explanationName = displayName + '(' + explanationName + ')'
-            print('analyzing: ' + explanationName + ')')
+            explanationName = technicalName
             
             # if B has an alternate variable name, figure that out
-            has_alt_B_variable = False
-            b_variable = varRunInfo['variable_name']
-            if (varRunInfo.has_key('alternate_name_in_B')) :
-                has_alt_B_variable = True
+            b_variable = technicalName
+            if 'alternate_name_in_B' in varRunInfo :
                 b_variable = varRunInfo['alternate_name_in_B']
+                explanationName = explanationName + " / " + b_variable
+            explanationName = displayName + ' (' + explanationName + ')'
+            print('analyzing: ' + explanationName + ')')
             
             # get the data for the variable 
-            aData = aFile[varRunInfo['variable_name']]
+            aData = aFile[technicalName]
             bData = bFile[b_variable]
             
             # apply any data filter functions we may have
@@ -923,23 +931,23 @@ python -m glance
                 (bData.shape == longitudeCommon.shape)) :
                 
                 # build a dictionary of information on the variable
-                variableAnalysisInfo[varRunInfo['variable_name']] = {}
-                variableAnalysisInfo[varRunInfo['variable_name']]['data'] = {'A': aData,
-                                                                             'B': bData}
-                variableAnalysisInfo[varRunInfo['variable_name']]['var_stats'] = delta.summarize(aData, bData,
-                                                                                                 varRunInfo['epsilon'],
-                                                                                                 (varRunInfo['missing_value'],
-                                                                                                  varRunInfo['missing_value_alt_in_b']),
-                                                                                                 spaciallyInvalidMaskA, spaciallyInvalidMaskB)
+                variableAnalysisInfo[varKey] = {}
+                variableAnalysisInfo[varKey]['data'] = {'A': aData,
+                                                        'B': bData}
+                variableAnalysisInfo[varKey]['var_stats'] = delta.summarize(aData, bData,
+                                                                            varRunInfo['epsilon'],
+                                                                            (varRunInfo['missing_value'],
+                                                                             varRunInfo['missing_value_alt_in_b']),
+                                                                            spaciallyInvalidMaskA, spaciallyInvalidMaskB)
                 # add a little additional info to our variable run info before we squirrel it away
                 varRunInfo['time'] = datetime.datetime.ctime(datetime.datetime.now()) 
-                passedFraction = (1.0 - variableAnalysisInfo[name]['var_stats']
+                passedFraction = (1.0 - variableAnalysisInfo[varKey]['var_stats']
                                   ['Numerical Comparison Statistics']['diff_outside_epsilon_fraction'])
                 varRunInfo['did_pass'] = _check_pass_or_fail(varRunInfo,
-                                                             variableAnalysisInfo[name]['var_stats'],
+                                                             variableAnalysisInfo[varKey]['var_stats'],
                                                              defaultValues)
-                variableAnalysisInfo[varRunInfo['variable_name']]['run_info'] = varRunInfo
-                variableAnalysisInfo[varRunInfo['variable_name']]['exp_name'] = explanationName
+                variableAnalysisInfo[varKey]['run_info'] = varRunInfo
+                variableAnalysisInfo[varKey]['exp_name'] = explanationName
                 
             # if we can't compare the variable, we should tell the user 
             else :
@@ -957,12 +965,12 @@ python -m glance
         
         # loop to create the images for all our variables
         if (runInfo['shouldIncludeImages']) :
-            for name in variableAnalysisInfo :
+            for varKey in variableAnalysisInfo :
                 # create the images comparing that variable
-                print("\tcreating figures for: " + variableAnalysisInfo[name]['exp_name'])
-                plot.plot_and_save_figure_comparison(variableAnalysisInfo[name]['data']['A'],
-                                                     variableAnalysisInfo[name]['data']['B'],
-                                                     variableAnalysisInfo[name]['run_info'],
+                print("\tcreating figures for: " + variableAnalysisInfo[varKey]['exp_name'])
+                plot.plot_and_save_figure_comparison(variableAnalysisInfo[varKey]['data']['A'],
+                                                     variableAnalysisInfo[varKey]['data']['B'],
+                                                     variableAnalysisInfo[varKey]['run_info'],
                                                      files['file A']['path'],
                                                      files['file B']['path'],
                                                      latitudeA, longitudeA,
@@ -972,32 +980,33 @@ python -m glance
                                                      spaciallyInvalidMaskB,
                                                      outputPath, True,
                                                      doFork=runInfo['doFork']) 
-                print("\tfinished creating figures for: " + variableAnalysisInfo[name]['exp_name'])
+                print("\tfinished creating figures for: " + variableAnalysisInfo[varKey]['exp_name'])
         
         # reports are fast, so the parent thread will just do this
         # generate our general report pages once we've looked at all the variables
         if (runInfo['shouldIncludeReport']) :
             
             # this is going to be in the form
-            # [var_name] = {"passEpsilonPercent": percent ok with epsilon, "epsilon": epsilon)
+            # [varKey] = {"passEpsilonPercent": percent ok with epsilon, "epsilon": epsilon)
             variableComparisons = {}
             
             # generate the variable reports
-            for name in variableAnalysisInfo :
+            for varKey in variableAnalysisInfo :
                 
                 # hang on to our good % and other info to describe our comparison
-                passedPercent = (1.0 - variableAnalysisInfo[name]['var_stats']
+                passedPercent = (1.0 - variableAnalysisInfo[varKey]['var_stats']
                                   ['Numerical Comparison Statistics']['diff_outside_epsilon_fraction']) * 100.0
-                variableComparisons[name] = {'pass_epsilon_percent': passedPercent,
-                                             'variable_run_info': variableAnalysisInfo[name]['run_info']
-                                             }
+                variableComparisons[varKey] = {'pass_epsilon_percent': passedPercent,
+                                               'variable_run_info': variableAnalysisInfo[varKey]['run_info']
+                                               }
                 
-                print ('\tgenerating report for: ' + variableAnalysisInfo[name]['exp_name']) 
+                print ('\tgenerating report for: ' + variableAnalysisInfo[varKey]['exp_name']) 
                 report.generate_and_save_variable_report(files,
-                                                         variableAnalysisInfo[name]['run_info'], runInfo,
-                                                         variableAnalysisInfo[name]['var_stats'],
+                                                         variableAnalysisInfo[varKey]['run_info'], runInfo,
+                                                         variableAnalysisInfo[varKey]['var_stats'],
                                                          spatialInfo,
-                                                         outputPath, name + ".html")
+                                                         outputPath,
+                                                         variableAnalysisInfo[varKey]['run_info']['variable_name'] + ".html")
             
             print ('generating summary report')
             # get the current time
diff --git a/pyglance/glance/exconfig.py b/pyglance/glance/exconfig.py
index 68e8b48cac40c6b41d0d4900c0e6faac1d30c714..e4548b25782a3bd2bdc8315a583f4fe65f49d707 100644
--- a/pyglance/glance/exconfig.py
+++ b/pyglance/glance/exconfig.py
@@ -43,7 +43,7 @@ lat_lon_info ['latitude_alt_name_in_b'] = 'resampled_latitude'  # the alternate
 # for differening data types (like ints/floats or float32/float64) or to handle slicing out only a subset of the data for analysis
 # note: these two filters will only be applied to the longitude and latitude data in file B
 lat_lon_info['data_filter_function_lon_in_b'] = (insert lambda function here)
-lat_lon_info['data_filter_function_lon_in_b'] = (insert lambda function here)
+lat_lon_info['data_filter_function_lat_in_b'] = (insert lambda function here)
 """
 # this value can be used to control how similar the longitude and latitude must be to be considered matching
 # if all of your longitude and latitude do not match under this epsilon, most of the comparison report will
@@ -74,8 +74,12 @@ defaultValues = {'epsilon': 0.0,                        # the acceptable differe
                  'nonfinite_data_tolerance': None       # the allowed fraction of non-finite data
                                                         # None indicates that variables should not be tested
                                                         # on amount of non-finite data
-                 #'data_filter_function_a': (insert lambda function here),
-                 #'data_filter_function_b': (insert lambda function here)
+                 # the following two functions can be defined in order to filter the variable data,
+                 # for example, these could be used to compensate
+                 # for differening data types (like ints/floats or float32/float64)
+                 # or to handle slicing out only a subset of the data for analysis
+    #            'data_filter_function_a': (insert lambda function here), # note: will only be applied to file A data
+    #            'data_filter_function_b': (insert lambda function here)  # note: will only be applied to file B data
                  }
 
 # a list of all the variables to analyze, all of the details are optional,
@@ -91,11 +95,10 @@ defaultValues = {'epsilon': 0.0,                        # the acceptable differe
 # leave it as an empty dictionary)
 setOfVariables = {}
 
-setOfVariables['imager_prof_retr_abi_total_totals_index'] = {           # this should match the variable name in your files
+setOfVariables['Total Totals'] = {           # the key of your variable entry will be used as the display name for your variable
                                   
-                                  'display_name': 'Total Totals',       # this entry is totally optional, it's used to label
-                                                                        # the report and some of the plots, if ommitted
-                                                                        # the variable name will be used in those places instead
+                                  'variable_name': 'imager_prof_retr_abi_total_totals_index',       
+                                                                        # this should match the variable name in your file
                                                                         
                                   'epsilon': 1.0,                       # the acceptable difference between file A and file B
                                   
@@ -130,16 +133,12 @@ setOfVariables['imager_prof_retr_abi_total_totals_index'] = {           # this s
                                                                         # let you label your ranges (ie, the space between two
                                                                         # boundaries) or your boundaries.
                                   
-                                  
-                                  # the following two functions can be defined in order to filter the variable data,
-                                  # for example, these could be used to compensate
-                                  # for differening data types (like ints/floats or float32/float64)
-                                  # or to handle slicing out only a subset of the data for analysis
+                                  # data filters can be defined/overridden on a variable by variable basis
 #                                  'data_filter_function_a': (insert lambda function here), # note: will only be applied to file A data
 #                                  'data_filter_function_b': (insert lambda function here)  # note: will only be applied to file B data
                                   }
-setOfVariables['imager_prof_retr_abi_total_precipitable_water_high'] = {
-                                  'display_name': 'Total Precipitable Water, High',
+setOfVariables['Total Precipitable Water, High'] = {
+                                  'variable_name': 'imager_prof_retr_abi_total_precipitable_water_high',
                                   'epsilon': 3.0,
                                   
                                   'alternate_name_in_B': 'imager_prof_retr_abi_total_precipitable_water_low',
@@ -149,42 +148,42 @@ setOfVariables['imager_prof_retr_abi_total_precipitable_water_high'] = {
                                                                         # to appear only in file A)
                                   }
 
-setOfVariables['imager_prof_retr_abi_total_precipitable_water'] = {
-                                  'display_name': 'Total Precipitable Water',
+setOfVariables['Total Precipitable Water'] = {
+                                  'variable_name': 'imager_prof_retr_abi_total_precipitable_water',
                                   'epsilon': 3.0
                                   # example:
                                   # because missing, and the two tolerances are not defined here,
                                   # this variable would use the defaultValues for those 
                                   }
-setOfVariables['imager_prof_retr_abi_total_precipitable_water_low'] = {
-                                  'display_name': 'Total Precipitable Water, Low',
+setOfVariables['Total Precipitable Water, Low'] = {
+                                  'variable_name': 'imager_prof_retr_abi_total_precipitable_water_low',
                                   'epsilon': 3.0
                                   }
-setOfVariables['imager_prof_retr_abi_total_precipitable_water_mid'] = {
-                                  'display_name': 'Total Precipitable Water, Mid',
+setOfVariables['Total Precipitable Water, Mid'] = {
+                                  'variable_name': 'imager_prof_retr_abi_total_precipitable_water_mid',
                                   'epsilon': 3.0
                                   }
-setOfVariables['imager_prof_retr_abi_land_surface_temperature'] = {
-                                  'display_name': 'Land Surface Temperature',
+setOfVariables['Land Surface Temperature'] = {
+                                  'variable_name': 'imager_prof_retr_abi_land_surface_temperature',
                                   'epsilon': 5.0
                                   }
-setOfVariables['imager_prof_retr_abi_k_index'] = {
-                                  'display_name': 'K-Index',
+setOfVariables['K-Index'] = {
+                                  'variable_name': 'imager_prof_retr_abi_k_index',
                                   'epsilon': 2.0
                                   }
-setOfVariables['imager_prof_retr_abi_tprof'] = {
-                                  'display_name': 'Temperature Profile',
+setOfVariables['Temperature Profile'] = {
+                                  'variable_name': 'imager_prof_retr_abi_tprof',
                                   'epsilon': 0.1
                                   }
-setOfVariables['imager_prof_retr_abi_cape'] = {
-                                  'display_name': 'CAPE',
+setOfVariables['CAPE'] = {
+                                  'variable_name': 'imager_prof_retr_abi_cape',
                                   'epsilon': 1000
                                   }
-setOfVariables['imager_prof_retr_abi_lifted_index'] = {
-                                  'display_name': 'Lifted Index',
+setOfVariables['Lifted Index'] = {
+                                  'variable_name': 'imager_prof_retr_abi_lifted_index',
                                   'epsilon': 2.0
                                   }
-setOfVariables['imager_prof_retr_abi_showalter_index'] = {
-                                  'display_name': 'Showalter Index',
+setOfVariables['Showalter Index'] = {
+                                  'variable_name': 'imager_prof_retr_abi_showalter_index',
                                   'epsilon': 2.0
                                   }
diff --git a/pyglance/glance/mainreport.txt b/pyglance/glance/mainreport.txt
index 3a3f08f5d5219fa4fb5cbb2021a679e431fc5366..bb5c30cb0a00279a5fcdfcc4a36a0ad3062f3b5d 100644
--- a/pyglance/glance/mainreport.txt
+++ b/pyglance/glance/mainreport.txt
@@ -31,7 +31,7 @@ Copyright (c) 2009 University of Wisconsin SSEC. All rights reserved.
                 ${tempFileInfo['displayName']}
             % endif
             <blockquote>
-                file path: ${tempFileInfo['path']} <br>
+                path: ${tempFileInfo['path']} <br>
                 md5sum for ${fileKey}: ${tempFileInfo['md5sum']} <br>
                 last modified: ${tempFileInfo['lastModifiedTime']}
             </blockquote>
@@ -148,15 +148,15 @@ Copyright (c) 2009 University of Wisconsin SSEC. All rights reserved.
         ## report on all the variables that were compared and give a basic stat idea of how well they did
         <blockquote>
             <p>
-                ## TODO replace the table with floating boxes in some form
+                ## TODO replace the table with floating boxes at some point
                 <table> 
                     
-                    
-                    % for variableName in sorted(list(variables)) :
+                    % for variableKey in sorted(list(variables)) :
                         <%
-                            tempVariableInfo = variables[variableName]
-                            varDisplayName = variableName
-                            if (tempVariableInfo['variable_run_info'].has_key('display_name')) :
+                            tempVariableInfo = variables[variableKey]
+                            technicalName  = tempVariableInfo['variable_run_info']['variable_name']
+                            varDisplayName = technicalName
+                            if 'display_name' in tempVariableInfo['variable_run_info'] :
                                 varDisplayName = tempVariableInfo['variable_run_info']['display_name']
                             passPercent = tempVariableInfo['pass_epsilon_percent']
                             didPass = tempVariableInfo['variable_run_info']['did_pass']
@@ -172,7 +172,7 @@ Copyright (c) 2009 University of Wisconsin SSEC. All rights reserved.
                                 % endif
                             </td>
                             <td>
-                                Variable: <a href="${variableName | u}.html">${varDisplayName}</a> <br>
+                                Variable: <a href="${technicalName | u}.html">${varDisplayName}</a> <br>
                                 Epsilon used: ${tempVariableInfo['variable_run_info']['epsilon']} <br>
                                 Finite values within one epsilon of difference:
                                 ${report.make_formatted_display_string(passPercent)}%
@@ -207,7 +207,7 @@ Copyright (c) 2009 University of Wisconsin SSEC. All rights reserved.
     % if (len(uniqueToAVars) > 0) or (len(uniqueToBVars) > 0) :
         <h3>Unique Variables</h3>
         
-        % if (len(uniqueToAVars) != 0) :
+        % if (len(uniqueToAVars) > 0) :
             <p>
                 Variables only found in file A:
                 <blockquote>
@@ -218,7 +218,7 @@ Copyright (c) 2009 University of Wisconsin SSEC. All rights reserved.
             </p>
         % endif
         
-        % if (len(uniqueToBVars) != 0) :
+        % if (len(uniqueToBVars) > 0) :
             <p>
                 Variables only found in file B:
                 <blockquote>
diff --git a/pyglance/glance/variablereport.txt b/pyglance/glance/variablereport.txt
index d5ea73f864f0d6f3a7b9dd6d7654d7c28bcfb6fa..bbc6027aeaa2968c089f621382d6ebde84efb96d 100644
--- a/pyglance/glance/variablereport.txt
+++ b/pyglance/glance/variablereport.txt
@@ -37,11 +37,11 @@ Copyright (c) 2009 University of Wisconsin SSEC. All rights reserved.
         <% tempFileInfo = files[fileKey] %>
         <p>
             ${fileKey}:
-            % if tempFileInfo.has_key('displayName') :
+            % if 'displayName' in tempFileInfo :
                 ${tempFileInfo['displayName']}
             % endif
             <blockquote>
-                file path: ${tempFileInfo['path']} <br>
+                path: ${tempFileInfo['path']} <br>
                 md5sum for ${fileKey}: ${tempFileInfo['md5sum']} <br>
                 last modified: ${tempFileInfo['lastModifiedTime']}
             </blockquote>