async initialize() {
    return new Promise((resolve) => {
      try {
        const onDonePtr = this.callbackDictionary.onCbResult;
        const rawOnDonePtr = koffi.register((result) => {
          const json = JSON.parse(result);

          return resolve(this._getData(json));
        }, koffi.pointer(onDonePtr));

        const Initialize = this.lib.func(this.fnDictionary.Initialize);

        Initialize.async(rawOnDonePtr, (err, _) => {
          koffi.unregister(rawOnDonePtr);

          if (!undefinedOrNull(err)) {
            log.error(err, 'Kalam.Initialize.async');

            return resolve(this._getNapiError(err));
          }
        });
      } catch (err) {
        log.error(err, 'Kalam.Initialize.catch');

        return resolve(this._getNapiError(err));
      }
    });
  }
description - Initialize Kalam MTP

@return {Promise<object>}
@constructor