code: def register(self, alias, service_class, configs=None, start_service=True):
          
          if not inspect.isclass(service_class):
              raise Error(self._device, '"%s" is not a class!' % service_class)
          if not issubclass(service_class, base_service.BaseService):
              raise Error(
                  self._device,
                  'Class %s is not a subclass of BaseService!' % service_class)
          if alias in self._service_objects:
              raise Error(
                  self._device,
                  'A service is already registered with alias "%s".' % alias)
          service_obj = service_class(self._device, configs)
          if start_service:
              service_obj.start()
          self._service_objects[alias] = service_obj
docs: Registers a service.
  
          This will create a service instance, starts the service, and adds the
          instance to the mananger.
  
          Args:
              alias: string, the alias for this instance.
              service_class: class, the service class to instantiate.
              configs: (optional) config object to pass to the service class's
                  constructor.
              start_service: bool, whether to start the service instance or not.
                  Default is True.