code: def add(self, target, args=None, kwargs=None, **options):
          
          from furious.async import Async
          from furious.batcher import Message
  
          if self._tasks_inserted:
              raise errors.ContextAlreadyStartedError(
                  "This Context has already had its tasks inserted.")
  
          if not isinstance(target, (Async, Message)):
              target = Async(target, args, kwargs, **options)
  
          target.update_options(_context_id=self.id)
  
          if self.persist_async_results:
              target.update_options(persist_result=True)
  
          self._tasks.append(target)
          self._options['_task_ids'].append(target.id)
  
          return target
docs: Add an Async job to this context.
  
          Takes an Async object or the arguments to construct an Async
          object as arguments.  Returns the newly added Async object.