def execute(self, data_dict, callback, group=None, trace=None):
        """Low level method to expand the template piece by piece.

    Args:
      data_dict: The JSON data dictionary.
      callback: A callback which should be called with each expanded token.
      group: Dictionary of name -> Template instance (for styles)

    Example: You can pass 'f.write' as the callback to write directly to a file
    handle.
    """
        # First try the passed in version, then the one set by _SetTemplateGroup.  May
        # be None.  Only one of these should be set.
        group = group or self.group
        context = _ScopedContext(data_dict, self.undefined_str, group=group)
        _Execute(self._program.Statements(), context, callback, trace)