docs: def _make_step(self, orb, step):
          """Compute the next step with the selected method
          """
  
          method = self.BUTCHER[self.method]
          a, b, c = method['a'], method['b'], method['c']
  
          y_n = orb.copy()
          ks = [self._newton(y_n, timedelta(0))]
  
          for a, c in zip(a[1:], c[1:]):
              k_plus1 = self._newton(y_n + a @ ks * step.total_seconds(), step * c)
              ks.append(k_plus1)
  
          y_n_1 = y_n + step.total_seconds() * b @ ks
          y_n_1.date = y_n.date + step
  
          # Error estimation, in cases where adaptively methods are used
          # if 'b_star' in method:
          #     error = step.total_seconds() * (b - method['b_star']) @ ks
  
          for man in self.orbit.maneuvers:
              if man.check(orb, step):
                  log.debug("Applying maneuver at {} ({})".format(man.date, man.comment))
                  y_n_1[3:] += man.dv(y_n_1)
  
          return y_n_1