diff --git a/pyglance/glance/compare.py b/pyglance/glance/compare.py
index 3c15fbb65cd201cee7359d48cb5d99f7d8a5cb4e..9c357aa3c342d1ddbc7f40ccbd9ac3c4a5c83a5e 100644
--- a/pyglance/glance/compare.py
+++ b/pyglance/glance/compare.py
@@ -11,7 +11,7 @@ Copyright (c) 2009 University of Wisconsin SSEC. All rights reserved.
 
 #from pprint import pprint, pformat
 
-import os, sys, logging, re, datetime, glob
+import os, sys, logging, datetime, glob
 from numpy import *
 import numpy
 from urllib.parse import quote
@@ -93,7 +93,7 @@ def _match_files_from_dirs (a_path, b_path, ) :
     return file_pairs
 
 # TODO, I'd like to move this into a different file at some point
-def _get_name_info_for_variable(original_display_name, variable_run_info) :
+def _get_name_info_for_variable (original_display_name, variable_run_info) :
     """
     based on the variable run info, figure out the various names for
     the variable and return them
@@ -123,8 +123,8 @@ def _get_name_info_for_variable(original_display_name, variable_run_info) :
     
     return technical_name, b_variable_technical_name, explanation_name
 
-def colocateToFile_library_call(a_path, b_path, var_list=[ ],
-                                options_set={ },
+def colocateToFile_library_call(a_path, b_path, var_list=None,
+                                options_set=None,
                                 # todo, this doesn't yet do anything
                                 do_document=False,
                                 # todo, the output channel does nothing at the moment
@@ -135,7 +135,11 @@ def colocateToFile_library_call(a_path, b_path, var_list=[ ],
     
     TODO, properly document the options
     """
-    
+
+    # set some values for defaults
+    var_list = [ ] if var_list is None else var_list
+    options_set = { } if options_set is None else options_set
+
     # load the user settings from either the command line or a user defined config file
     pathsTemp, runInfo, defaultValues, requestedNames, usedConfigFile = config_organizer.load_config_or_options(a_path, b_path,
                                                                                                                 options_set,
@@ -301,7 +305,7 @@ def reportGen_raw_data_simple_call (aData, bData, variableDisplayName,
     """
     
     LOG.info("Setting up basic information")
-    
+
     aData = array(aData)
     bData = array(bData)
     
@@ -367,14 +371,10 @@ def reportGen_raw_data_simple_call (aData, bData, variableDisplayName,
         if includeImages :
             
             LOG.info("Plotting images for " + variableDisplayName)
-            
-            plotFunctionGenerationObjects = [ ]
-            
-            # add the function to make the histogram and scatter plot
-            plotFunctionGenerationObjects.append(plotcreate.BasicComparisonPlotsFunctionFactory())
-            
-            # add the function to do basic imshow images
-            plotFunctionGenerationObjects.append(plotcreate.IMShowPlotFunctionFactory())
+
+            # the various functions that will create our plots
+            plotFunctionGenerationObjects = [plotcreate.BasicComparisonPlotsFunctionFactory(), # the function to make the histogram and scatter plot
+                                             plotcreate.IMShowPlotFunctionFactory(), ] # the function to do basic imshow images
             
             # plot our lon/lat related info
             image_names[ORIGINAL_IMAGES_KEY], image_names[COMPARED_IMAGES_KEY] = \
@@ -427,8 +427,8 @@ def reportGen_raw_data_simple_call (aData, bData, variableDisplayName,
                 + str(bData.shape) + ').')
         LOG.warn(message)
 
-def inspect_library_call (a_path, var_list=[ ],
-                          options_set={ },
+def inspect_library_call (a_path, var_list=None,
+                          options_set=None,
                           # todo, this doesn't yet do anything
                           do_document=False,
                           # todo, the output channel does nothing at the moment
@@ -444,7 +444,11 @@ def inspect_library_call (a_path, var_list=[ ],
     has minimized the problem, but you still need to be careful when dealing with
     optional boolean values. this needs more work.)
     """
-    
+
+    # set some values for defaults
+    var_list = [ ] if var_list is None else var_list
+    options_set = { } if options_set is None else options_set
+
     # load the user settings from either the command line or a user defined config file
     pathsTemp, runInfo, defaultValues, requestedNames, usedConfigFile = config_organizer.load_config_or_options(a_path, None, # there is no B path
                                                                                                                 options_set,
@@ -697,8 +701,8 @@ def inspect_library_call (a_path, var_list=[ ],
     
     return 0
 
-def reportGen_library_call (a_path, b_path, var_list=[ ],
-                            options_set={ },
+def reportGen_library_call (a_path, b_path, var_list=None,
+                            options_set=None,
                             # todo, this doesn't yet do anything
                             do_document=False,
                             # todo, the output channel does nothing at the moment
@@ -713,6 +717,10 @@ def reportGen_library_call (a_path, b_path, var_list=[ ],
     has minimized the problem, but you still need to be careful when dealing with
     optional boolean values. this needs more work.)
     """
+
+    # set some values for defaults
+    var_list = [ ] if var_list is None else var_list
+    options_set = { } if options_set is None else options_set
     
     # have all the variables passed test criteria set for them?
     # if no criteria were set then this will be true
@@ -1073,8 +1081,8 @@ def reportGen_library_call (a_path, b_path, var_list=[ ],
     else :
         return 0
 
-def stats_library_call(afn, bfn, var_list=[ ],
-                       options_set={ },
+def stats_library_call(afn, bfn, var_list=None,
+                       options_set=None,
                        do_document=False,
                        output_channel=sys.stdout): 
     """
@@ -1084,6 +1092,11 @@ def stats_library_call(afn, bfn, var_list=[ ],
     display.
     TODO, should this move to a different file?
     """
+
+    # set some values for defaults
+    var_list = [] if var_list is None else var_list
+    options_set = {} if options_set is None else options_set
+
     # unpack some options
     epsilon_val  = options_set[EPSILON_KEY]
     missing_val  = options_set[OPTIONS_FILL_VALUE_KEY]
@@ -1147,13 +1160,13 @@ def stats_library_call(afn, bfn, var_list=[ ],
         lal.sort()
         for dictionary_title, dict_data in lal:
             print('%s' % dictionary_title, file=output_channel,)
-            dict_data
+            #dict_data
             for each_stat in sorted(list(dict_data)):
                 print('  %s: %s' % (each_stat, dict_data[each_stat]), file=output_channel,)
                 if doc_each: print(('    ' + statistics.StatisticalAnalysis.doc_strings()[each_stat]), file=output_channel,)
             print('', file=output_channel, )
     if doc_atend:
-        print(('\n\n' + statistics.STATISTICS_DOC_STR), file=output_channel,)
+        print(('\n\n' + statistics.get_comparison_doc_string()), file=output_channel,)
     
     # if we are doing pass/fail, we need to return a status code
     if do_pass_fail :
@@ -1164,7 +1177,7 @@ def stats_library_call(afn, bfn, var_list=[ ],
         return status_code
     # note: if we aren't doing pass/fail, stats will not return anything
 
-def inspect_stats_library_call (afn, var_list=[ ], options_set={ }, do_document=False, output_channel=sys.stdout): 
+def inspect_stats_library_call (afn, var_list=None, options_set=None, do_document=False, output_channel=sys.stdout):
     """
     this method handles the actual work of the inspect_stats command line tool and
     can also be used as a library routine, simply pass in an output channel
@@ -1172,6 +1185,11 @@ def inspect_stats_library_call (afn, var_list=[ ], options_set={ }, do_document=
     display.
     TODO, should this move to a different file?
     """
+
+    # set some values for defaults
+    var_list = [ ] if var_list is None else var_list
+    options_set = { } if options_set is None else options_set
+
     # unpack some options
     missing_val  = options_set[OPTIONS_FILL_VALUE_KEY]
     
@@ -1211,13 +1229,13 @@ def inspect_stats_library_call (afn, var_list=[ ], options_set={ }, do_document=
         lal.sort()
         for dictionary_title, dict_data in lal:
             print('%s' % dictionary_title, file=output_channel,)
-            dict_data
+            #dict_data
             for each_stat in sorted(list(dict_data)):
                 print('  %s: %s' % (each_stat, dict_data[each_stat]), file=output_channel, )
                 if doc_each: print(('    ' + statistics.StatisticalInspectionAnalysis.doc_strings()[each_stat]), file=output_channel,)
             print('', file=output_channel,)
     if doc_atend:
-        print(('\n\n' + statistics.INSP_STATISTICS_DOC_STR), file=output_channel,)
+        print(('\n\n' + statistics.get_inspection_doc_string()), file=output_channel,)
 
     return 0
 
@@ -1288,7 +1306,7 @@ def main():
         Please note that this command does not handle any sort of directory navigation, so you will need
         to give it simple paths to specific files you want to analyze.
 
-        Optinally you may also provide variable names to be analyzed. If no variable names are
+        Optionally you may also provide variable names to be analyzed. If no variable names are
         given, this command will attempt to analyze all variables it can. When analyzing two files
         only variables with matching names and shapes will be examined.
 
@@ -1770,7 +1788,7 @@ def main():
 
         # if the user did specify a command, just print that one
         else:
-            if (command.lower() in lower_locals):
+            if command.lower() in lower_locals :
                 split_doc = lower_locals[command.lower()].__doc__.split('\n')
                 print()
                 for line in split_doc[1:] :
@@ -1798,7 +1816,7 @@ def main():
 
     # if what the user asked for is not one of our existing functions, print the help
     to_return = 0
-    if ((not args) or (args[0].lower() not in lower_locals)):
+    if (not args) or (args[0].lower() not in lower_locals):
         if options.version:
             to_return = 0
         else :
diff --git a/pyglance/glance/delta.py b/pyglance/glance/delta.py
index d4aa0a0636bd9369e0fdc2c02d15ca7f09ba9f4b..8304492942a2baf100c31cc5ec1f9d1d58758840 100644
--- a/pyglance/glance/delta.py
+++ b/pyglance/glance/delta.py
@@ -8,7 +8,6 @@ Copyright (c) 2009 University of Wisconsin SSEC. All rights reserved.
 """
 
 import logging
-import math
 import numpy as numpy
 from numpy import * # todo, remove this line
 
diff --git a/pyglance/glance/stats.py b/pyglance/glance/stats.py
index 464a2a6b0091e6bdc9347fa1930011239af72080..ee3b5b459a3d8100eca0446b33c24d9e39046e42 100644
--- a/pyglance/glance/stats.py
+++ b/pyglance/glance/stats.py
@@ -13,6 +13,9 @@ import glance.delta as delta
 
 import numpy as np
 
+import logging
+LOG = logging.getLogger(__name__)
+
 # I don't like this design, but it's what I could come up
 # with for now. FUTURE: Reconsider this design again later.
 class StatisticalData (object) :
@@ -53,8 +56,9 @@ class StatisticalData (object) :
         note: child classes should override this method
         """
         return { }
-    
-    def make_prefix_and_suffix (self, descriptionText) :
+
+    @staticmethod
+    def make_prefix_and_suffix (descriptionText, ) :
         """
         given text describing a statistic (or none)
         return an appropriate prefix and suffix
@@ -166,7 +170,7 @@ class MissingValueStatistics (StatisticalData) :
         
         # if we only have stats for one data set
         if self.is_one_data_set :
-            temp_prefix, _ = self.make_prefix_and_suffix(self.desc_text)
+            temp_prefix, _ = StatisticalData.make_prefix_and_suffix(self.desc_text)
             toReturn = {
                         temp_prefix + 'missing_count':      self.missing_count,
                         temp_prefix + 'missing_fraction':   self.missing_fraction,
@@ -307,7 +311,7 @@ class FiniteDataStatistics (StatisticalData) :
         
         # if we only have stats for one data set
         if self.is_one_data_set :
-            temp_prefix, _ = self.make_prefix_and_suffix(self.desc_text)
+            temp_prefix, _ = StatisticalData.make_prefix_and_suffix(self.desc_text)
             toReturn = {
                         temp_prefix + 'finite_count':    self.finite_count,
                         temp_prefix + 'finite_fraction': self.finite_fraction,
@@ -436,7 +440,7 @@ class NotANumberStatistics (StatisticalData) :
         
         # if we only have stats for one data set
         if self.is_one_data_set :
-            temp_prefix, _ = self.make_prefix_and_suffix(self.desc_text)
+            temp_prefix, _ = StatisticalData.make_prefix_and_suffix(self.desc_text)
             toReturn = {
                         temp_prefix + 'nan_count':         self.nan_count,
                         temp_prefix + 'nan_fraction':      self.nan_fraction,
@@ -592,7 +596,7 @@ class GeneralStatistics (StatisticalData) :
             self.spatially_invalid_pts_ignored = np.sum(dataObject.masks.ignore_mask)
             
             # if we should also do extra stats, do so
-            if (doExtras) :
+            if doExtras :
                 self.num_data_points = dataObject.masks.missing_mask.size if not noData else 0
                 self.shape           = dataObject.masks.missing_mask.shape if not dataObject.is_scalar else "a single scalar value"
             
@@ -634,7 +638,7 @@ class GeneralStatistics (StatisticalData) :
         
         # if we only have stats for one data set
         if self.is_one_data_set :
-            temp_prefix, temp_suffix = self.make_prefix_and_suffix(self.desc_text)
+            temp_prefix, temp_suffix = StatisticalData.make_prefix_and_suffix(self.desc_text)
             toReturn = {
                         temp_prefix + 'missing_value':                 self.missing_value,
                         'max'                           + temp_suffix: self.max,
@@ -794,10 +798,13 @@ class NumericalComparisonStatistics (StatisticalData) :
         return toReturn
     
     @staticmethod
-    def doc_strings( ) :
+    def doc_strings(inspect=False, ) :
         """get documentation strings that match the dictionary form of the statistics
         """
-        
+
+        if inspect is True:
+            LOG.debug("Unexpected input parameter is attempting to get inspection doc strings for numerical comparison statistics.")
+
         return NumericalComparisonStatistics._doc_strings
     
     @staticmethod
@@ -831,12 +838,7 @@ class NumericalComparisonStatistics (StatisticalData) :
         get the number of data points where
         the value in A perfectly matches the value in B
         """
-        numPerfect = 0
-        
-        if goodMask is None :
-            numPerfect = np.sum(aData == bData)
-        else :
-            numPerfect = np.sum(aData[goodMask] == bData[goodMask])
+        numPerfect = np.sum(aData == bData) if goodMask is None else np.sum(aData[goodMask] == bData[goodMask])
         
         return numPerfect
 
@@ -982,30 +984,23 @@ class StatisticalAnalysis (StatisticalData) :
         """
         get a dictionary form of the statistics
         """
-        toReturn = { }
-        
+
         # build a dictionary of all our statistics
-        toReturn[self.general.title]      =      self.general.dictionary_form()
-        toReturn[self.comparison.title]   =   self.comparison.dictionary_form()
-        toReturn[self.notANumber.title]   =   self.notANumber.dictionary_form()
-        toReturn[self.missingValue.title] = self.missingValue.dictionary_form()
-        toReturn[self.finiteData.title]   =   self.finiteData.dictionary_form()
+        toReturn = {
+                        self.general.title:         self.general.dictionary_form(),
+                        self.comparison.title:      self.comparison.dictionary_form(),
+                        self.notANumber.title:      self.notANumber.dictionary_form(),
+                        self.missingValue.title:    self.missingValue.dictionary_form(),
+                        self.finiteData.title:      self.finiteData.dictionary_form(),
+                    }
         
         return toReturn
-    
-    def doc_strings(self) :
-        """
-        get documentation strings that match the
-        dictionary form of the statistics
-        """
-        return StatisticalAnalysis.doc_strings( )
-    
-    # TODO, use this method instead of the dictionary at the bottom of this module
+
     @staticmethod
-    def doc_strings( ) :
+    def doc_strings (inspect=False, ) :
         """get documentation strings that match the dictionary form of the statistics
         """
-        
+
         toReturn = { }
         toReturn.update(            GeneralStatistics.doc_strings())
         toReturn.update(NumericalComparisonStatistics.doc_strings())
@@ -1083,26 +1078,19 @@ class StatisticalInspectionAnalysis (StatisticalData) :
         """
         get a dictionary form of the statistics
         """
-        toReturn = { }
-        
+
         # build a dictionary of all our statistics
-        toReturn[self.general.title]      = self.general.dictionary_form()
-        toReturn[self.notANumber.title]   = self.notANumber.dictionary_form()
-        toReturn[self.missingValue.title] = self.missingValue.dictionary_form()
-        toReturn[self.finiteData.title]   = self.finiteData.dictionary_form()
-        
+        toReturn =  {
+                        self.general.title:         self.general.dictionary_form(),
+                        self.notANumber.title:      self.notANumber.dictionary_form(),
+                        self.missingValue.title:    self.missingValue.dictionary_form(),
+                        self.finiteData.title:      self.finiteData.dictionary_form(),
+                    }
+
         return toReturn
-    
-    def doc_strings(self) :
-        """
-        get documentation strings that match the
-        dictionary form of the statistics
-        """
-        return StatisticalAnalysis.doc_strings( )
-    
-    # TODO, use this method instead of the dictionary at the bottom of this module
+
     @staticmethod
-    def doc_strings( ) :
+    def doc_strings(inspect=True, ) :
         """
         get documentation strings that match the
         dictionary form of the statistics
@@ -1118,9 +1106,11 @@ class StatisticalInspectionAnalysis (StatisticalData) :
 
 # -------------------------- documentation -----------------------------
 
-# TODO, can this be moved?
-STATISTICS_DOC_STR      = '\n'.join( '%s:\n    %s' % x for x in sorted(list(          StatisticalAnalysis.doc_strings().items())) ) + '\n'
-INSP_STATISTICS_DOC_STR = '\n'.join( '%s:\n    %s' % x for x in sorted(list(StatisticalInspectionAnalysis.doc_strings().items())) ) + '\n'
+def get_comparison_doc_string ( ) :
+    return '\n'.join( '%s:\n    %s' % x for x in sorted(list(          StatisticalAnalysis.doc_strings().items())) ) + '\n'
+
+def get_inspection_doc_string ( ) :
+    return '\n'.join( '%s:\n    %s' % x for x in sorted(list(StatisticalInspectionAnalysis.doc_strings().items())) ) + '\n'
 
 if __name__=='__main__':
     import doctest