code: public static WidgetLib init(GVRContext gvrContext, String customPropertiesAsset)
              throws InterruptedException, JSONException, NoSuchMethodException {
          if (mInstance == null) {
              // Constructor sets mInstance to ensure the initialization order
              new WidgetLib(gvrContext, customPropertiesAsset);
          }
          return mInstance.get();
      }
docs: Initialize an instance of Widget Lib. It has to be done before any usage of library.
  The application needs to hold onto the returned WidgetLib reference for as long as the
  library is going to be used.
  @param gvrContext A valid {@link GVRContext} instance
  @param customPropertiesAsset An optional asset JSON file containing custom and overridden
  properties for the application
  @return Instance of Widget library
  @throws InterruptedException
  @throws JSONException
  @throws NoSuchMethodException