docs: def add(self, interval):
          """
          Returns self after adding the interval and balancing.
          """
          if self.center_hit(interval):
              self.s_center.add(interval)
              return self
          else:
              direction = self.hit_branch(interval)
              if not self[direction]:
                  self[direction] = Node.from_interval(interval)
                  self.refresh_balance()
                  return self
              else:
                  self[direction] = self[direction].add(interval)
                  return self.rotate()