/// <summary>
        /// Initializes the <see cref="MPin"/> SDK instance.
        /// </summary>
        /// <param name="config">A key-value map of configuration parameters. Unsupported parameters will be ignored. Currently, the Core recognized the following parameters: backend - the URL of the M-Pin back-end service (Mandatory) and rpsPrefix - the prefix that should be added for requests to the RPS (Optional). The default value is "rps". </param>
        /// <param name="context">An <see cref="IContext"/> instance.</param>
        /// <returns> A <see cref="Status"/> which indicates whether the operation was successful or not.</returns>
        public Status Init(IDictionary <string, string> config, IContext context = null)
        {
            if (context == null)
            {
                context = new Context();
            }

            if (config == null || context == null)
            {
                return(new Status(InvalidStatus, ResourceLoader.GetForCurrentView().GetString("WrongParameters")));
            }

            StatusWrapper sw;

            lock (lockObject)
            {
                sw           = mPtr.Construct(config, context);
                this.context = context;
            }

            return(new Status(sw.Code, sw.Error));
        }