def _filter_kwargs(self, keep_list, **kwargs):
        ''' Filters the dict of *kwargs*, keeping only arguments 
            whose keys are in *keep_list* and discarding all other
            arguments.
            
            Based on the filtring, constructs and returns a new 
            dict.
        '''
        new_kwargs = {}
        for argName, argVal in kwargs.items():
            if argName.lower() in keep_list:
                new_kwargs[argName.lower()] = argVal
        return new_kwargs