code: def link_to(self, source, transformation=None):
          
          if isinstance(source, KerviValue):
              if source.is_input and not self.is_input:
                  self.add_observer(source, transformation)
              elif not source.is_input and self.is_input:
                  source.add_observer(self, transformation)
              else:
                  raise Exception("input/output mismatch in kervi value link:{0} - {1}".format(source.name, self.name))
          elif isinstance(source, str):
              if len(self._spine_observers) == 0:
                  self.spine.register_event_handler("valueChanged", self._link_changed_event)
  
              self._spine_observers[source] = transformation
docs: Kervi values may be linked together. 
          A KerviValue is configured to be either an input or output.
          When an output value is linked to an input value the input will become
          an observer of the output. Every time the output value change it will notify the input 
          about the change.
  
          :param source:
              It is possible to make direct and indirect link.
  
              If the type of the source parameter is of type KerviValue a direct link is created.
              this is a fast link where the output can notify directly to input.
              This type of link is possible if both output and input resides in the same process.
  
              If the type of the source parameter is a string it is expected to hold the id of a another KerviValue.
              In this mode the input value will listen on the kervi spine for events from the output value.
              This mode is useful if the output and input does not exists in the same process.
              This type of link must be made by the input.
  
          :type source: ``str`` or ``KerviValue``
  
          :param transformation:
              A function or lambda expression that transform the value before the output is update.
              This is usefull if the input expects other ranges that the output produce
              or need to change the sign of the value.