def append_new_context(klass, *args)
      klass.new(*args).tap do |new_context|
        new_context.register_with_parent(current_context)
      end
    end
def append_new_context(klass, *args)
      klass.new(*args).tap do |new_context|
        new_context.register_with_parent(current_context)
      end
    end
Appends a new child context to the current context but does not change
 the current context.

 @param klass [Context::*Context] context class
 @param args arguments for the class initializer

 @return [Context::*Context] the context that was appended