public boolean Init() throws LoadingOpenTransactionsFailure {
        final Logger l = Logger.getLogger(Load.class.getName());

        if (!isNativeLoaded) {
            throw new LoadingOpenTransactionsFailure(LoadErrorType.NATIVE_NOT_LOADED, "Native Libs Not Loaded!");
        }
        if (isInitialized) {
            throw new LoadingOpenTransactionsFailure(LoadErrorType.OTAPI_ALREADY_INSTIGATED, "Is Already Initialized");
        }

        // --------------------------------------------
        // This has internal logic so that it only actually is called once.
        // Probably not necessary anymore since I moved the call here.
        // The problem was, this call was happening too early (it could
        // happen even if otapi init failed) and then it wouldn't allow
        // itself to trigger again.  This I think should fix that.
        //
        // --------------------------------------------

        boolean bSuccess = false;

        if (otapiJNI.OTAPI_Basic_AppStartup()) // Call once at startup. Sets up OpenSSL, signal handlers, etc.
        {
            bSuccess = otapiJNI.OTAPI_Basic_Init(); // Initialize OTAPI context. Loads config file, etc.
        }
        // -------------------------------------------------
        if (bSuccess) {
            System.out.println("Load.initOTAPI: SUCCESS invoking OTAPI_Basic_AppStartup and OTAPI_Basic_Init.");
        } else // Failed in OTAPI_Basic_AppStartup or OTAPI_Basic_Init.
        {
            String strErrorMsg = "Load.initOTAPI: Failed calling OTAPI_Basic_AppStartup or OTAPI_Basic_Init.";
            throw new LoadingOpenTransactionsFailure(LoadErrorType.OTAPI_FAILED_TO_INSTIGATE, strErrorMsg);
        }

        isInitialized = true;
        return true;
    }