<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_to_stack(self, instance, stack):
 """ Get the context manager for the service `instance` and push it to the context manager `stack`. :param instance: The service to get the context manager for. :type instance: :class:`Service` :param stack: The context manager stack to push the CM onto. :type stack: :class:`contextlib.ExitStack` :return: The object returned by the context manager on enter. If a context manager has already been created for `instance`, it is re-used. On subsequent calls to :meth:`__get__` for the given `instance`, the return value of this method will be returned, that is, the value obtained from entering the context. """


        cm = self.init_cm(instance)
        obj = stack.enter_context(cm)
        self._data[instance] = cm, obj
        return obj