code: def add_observation(self, obs):
          
          if len(self._observations)==0:
              self._observations.append(obs)
          else:
              res = obs.resolution
              ind = 0
              for o in self._observations:
                  if res > o.resolution:
                      break
                  ind += 1
              self._observations.insert(ind, obs)
  
          self._build_tree()
          self._clear_cache()
docs: Adds an observation to observation list, keeping proper order