code: static public Widget createWidget(GVRSceneObject root,
              final String childName, final Class<? extends Widget> widgetClass)
              throws InstantiationException {
          Widget result = null;
          if (root != null) {
              root = findByName(childName, root);
              if (root != null) {
                  try {
                      result = createWidget(root, widgetClass);
                      Log.d(TAG, "createWidget(): created %s '%s'",
                            widgetClass.getSimpleName(), childName);
                  } catch (InstantiationException e) {
                      e.printStackTrace();
                      Log.e(TAG,
                            "createWidget(): couldn't instantiate '%s' as %s!",
                            childName, widgetClass.getSimpleName());
                      throw e;
                  }
              } else {
                  Log.e(TAG, "createWidget(): can't find '%s'!", childName);
              }
          } else {
              Log.e(TAG, "createWidget(): root is null!");
          }
          return result;
      }
docs: Create an {@link Widget} of the specified {@code widgetClass} to wrap a
  {@link GVRSceneObject} that is a child of the specified {@code root}
  {@code GVRSceneObject}.
  
  @param root
  The root {@code GVRSceneObject} containing the desired child.
  @param childName
  Name of the child of {@code root} to wrap.
  @param widgetClass
  The {@linkplain Class} of the {@code Widget} to wrap the child
  {@code GVRSceneObject} with.
  @return A new {@code AbsoluteLayout} instance.
  @throws InstantiationException
  If the {@code Widget} can't be instantiated for any reason.