 
     let push = BMSPushClient.sharedInstance;
     static let sharedInstance = CDVBMSPush()
-    static var pushUserId = String();
-    static var shouldRegister:Bool = false
-    static var registerParams = CDVInvokedUrlCommand()
+     var pushUserId = String();
+     var shouldRegister:Bool = false
+     var registerParams = CDVInvokedUrlCommand()
 
     #if swift(>=3.0)
-    static var bmsPushToken = Data()
+     var bmsPushToken = Data()
     #else
-    static var bmsPushToken = NSData()
+     var bmsPushToken = NSData()
     #endif
     var registerCallbackId: String?
     var registerCommandDelegate: CDVCommandDelegate?

    
    func didRegisterForRemoteNotifications(deviceToken: Data) {
        
        if (CDVBMSPush.sharedInstance.registerCallbackId == nil) {
            return
        }
        CDVBMSPush.bmsPushToken = deviceToken;
        registerDeviceAfterTokenRecieve(CDVBMSPush.registerParams)
    }
    
    func didFailToRegisterForRemoteNotifications(error: Error) {

            return
        }
        if (settings.count != 0) {
            CDVBMSPush.sharedInstance.pushUserId = settings["userId"] as! String
        }
        
        CDVBMSPush.sharedInstance.registerCommandDelegate!.run(inBackground: {
            
            if CDVBMSPush.sharedInstance.pushUserId.isEmpty{
                BMSPushClient.sharedInstance.registerWithDeviceToken(deviceToken: CDVBMSPush.sharedInstance.bmsPushToken) { (response, statusCode, error) -> Void in
                    
                    if (!error.isEmpty) {
                        let message = error.description
