code: def remove_observer(self, observer, callble=None):
          
          to_remove = []
          for poc in self.observers:
              _, obs, clble = poc
              if callble is not None:
                  if (obs is observer) and (callble == clble):
                      to_remove.append(poc)
              else:
                  if obs is observer:
                      to_remove.append(poc)
          for r in to_remove:
              self.observers.remove(*r)
docs: Either (if callble is None) remove all callables,
          which were added alongside observer,
          or remove callable `callble` which was added alongside
          the observer `observer`.