code: def free_parameters(self):
          
          free_parameters = collections.OrderedDict()
  
          for component in self._components.values():
  
              for par in component.shape.parameters.values():
  
                  if par.free:
  
                      free_parameters[par.path] = par
  
          return free_parameters
docs: Returns a dictionary of free parameters for this source.
          We use the parameter path as the key because it's 
          guaranteed to be unique, unlike the parameter name.
  
          :return: