static int Load() {
            try {
                javaPath = new JavaPathMgmt(configBean);
                if (!Load.It().InitNative(javaPath, "")) {
                    return 0; // user cancelled
                }

                if (Load.It().Init()) {

                    passwordImageMgmt = new PasswordImageMgmt();
                    if (Load.It().SetupPasswordImage(passwordImageMgmt)) {

                        javaPasswordCaller = new OTCaller();
                        javaPasswordCallback = new JavaCallback();
                        if (Load.It().SetupPasswordCallback(javaPasswordCaller, javaPasswordCallback)) {
                            if (Load.It().LoadWallet()) {
                                return 1; // all good
                            }
                        }
                    }
                }

                if (Load.It().GetInitialized()) {
                    return -1;  // we need to do some cleanup!
                }
                return 0;

            } catch (LoadingOpenTransactionsFailure ex) {
                Logger.getLogger(Moneychanger.class.getName()).log(Level.SEVERE, null, ex);

                if (Load.It().GetInitialized()) {
                    return -2;
                } else {
                    return 0;
                }
            }
        }