diff --git a/rave_android/src/main/java/com/flutterwave/raveandroid/account/AccountFragment.java b/rave_android/src/main/java/com/flutterwave/raveandroid/account/AccountFragment.java
index 5af9c62f..76b6702d 100644
--- a/rave_android/src/main/java/com/flutterwave/raveandroid/account/AccountFragment.java
+++ b/rave_android/src/main/java/com/flutterwave/raveandroid/account/AccountFragment.java
@@ -401,8 +401,10 @@ public void onGetBanksRequestFailed(String message) {
     public void collectOtp(String publicKey, String flutterwaveReference, String validateInstruction) {
         this.flwRef = flutterwaveReference;
 
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showOtpScreen(validateInstruction);
+        if (isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showOtpScreen(validateInstruction);
+        }
     }
 
     @Override
@@ -424,8 +426,10 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
     @Override
     public void displayInternetBankingPage(String authurl, String flwRef) {
         this.flwRef = flwRef;
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+        if(isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
                 .showWebpageVerificationScreen(authurl);
+        }
     }
 
     @Override
diff --git a/rave_android/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java b/rave_android/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java
index d165b934..443def42 100644
--- a/rave_android/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java
+++ b/rave_android/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java
@@ -157,9 +157,10 @@ public void showRedirectMessage(boolean active) {
 
     @Override
     public void showWebView(String authUrl, String flwRef) {
-
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showWebpageVerificationScreen(authUrl);
+        if (isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showWebpageVerificationScreen(authUrl);
+        }
     }
 
     private void dismissDialog() {
diff --git a/rave_android/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java b/rave_android/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java
index d5f59ec5..a82ffcef 100644
--- a/rave_android/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java
+++ b/rave_android/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java
@@ -169,8 +169,10 @@ public void showFetchFeeFailed(String message) {
     public void loadBarterCheckout(String authUrlCrude, String flwRef) {
 
         this.flwRef = flwRef;
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showBarterCheckoutScreen(authUrlCrude, flwRef);
+        if(isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showBarterCheckoutScreen(authUrlCrude, flwRef);
+        }
 
     }
 
diff --git a/rave_android/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java b/rave_android/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java
index 58943916..f957be3d 100644
--- a/rave_android/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java
+++ b/rave_android/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java
@@ -421,8 +421,10 @@ public void onPaymentError(String errorMessage) {
     @Override
     public void collectCardPin(final Payload payload) {
         this.payLoad = payload;   //added so as to get back in onActivityResult
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showPinScreen();
+        if (isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showPinScreen();
+        }
     }
 
     @Override
@@ -485,7 +487,9 @@ public void onSaveInstanceState(Bundle outState) {
      * @param message = text to display
      */
     public void showToast(String message) {
-        Toast.makeText(requireContext(), message+"", Toast.LENGTH_SHORT).show();
+        if(isAdded()){
+            Toast.makeText(requireContext(), message+"", Toast.LENGTH_SHORT).show();
+        }
     }
 
     /**
@@ -508,15 +512,19 @@ private void dismissDialog() {
     public void collectOtp(String flwRef, String message) {
         this.flwRef = flwRef;
         dismissDialog();
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showOtpScreen(message);
+        if(isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showOtpScreen(message);
+        }
     }
 
     public void showOTPLayoutForSavedCard(Payload payload, String authInstruction) {
         this.payLoad = payload;
         dismissDialog();
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showOtpScreenForSavedCard(authInstruction);
+        if(isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showOtpScreenForSavedCard(authInstruction);
+        }
     }
 
     @Override
@@ -576,8 +584,10 @@ public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction)
     public void showWebPage(String authenticationUrl, String flwRef) {
 
         this.flwRef = flwRef;
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showWebpageVerificationScreen(authenticationUrl);
+        if(isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showWebpageVerificationScreen(authenticationUrl);
+        }
     }
 
     @Override
@@ -774,19 +784,17 @@ public void onClick(DialogInterface dialog, int which) {
     public void collectCardAddressDetails(final Payload payload, String authModel) {
         this.payLoad = payload;
         this.authModel = authModel;
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showAddressScreen();
+        if(isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showAddressScreen();
+        }
     }
 
     private class ExpiryWatcher implements TextWatcher {
 
-        private final Calendar calendar;
-        private final SimpleDateFormat simpleDateFormat;
         private String lastInput = "";
 
         public ExpiryWatcher() {
-            calendar = Calendar.getInstance();
-            simpleDateFormat = new SimpleDateFormat("MM/yy");
         }
 
         @Override
@@ -803,44 +811,47 @@ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
         public void afterTextChanged(Editable editable) {
             String input = editable.toString();
             String cardExpiryToSet = cardExpiryTv.getText().toString() + "/";
+            String defaultExpiry = "12";
 
-            try {
-                calendar.setTime(simpleDateFormat.parse(input));
-            } catch (ParseException e) {
-
-                if (editable.length() == 2 && !lastInput.endsWith("/")) {
+            if (editable.length() == 2 && !lastInput.endsWith("/")) {
 
+                try {
                     int month = Integer.parseInt(input);
                     if (month <= 12) {
                         cardExpiryTv.setText(cardExpiryToSet);
                         cardExpiryTv.setSelection(cardExpiryTv.getText().toString().length());
                     } else {
-                        cardExpiryTv.setText(getResources().getString(R.string.defaultCardExpiry));
+                        cardExpiryTv.setText(defaultExpiry);
                         cardExpiryTv.setSelection(cardExpiryTv.getText().toString().length());
                     }
-                } else if (editable.length() == 2 && lastInput.endsWith("/")) {
-                    try {
-                        int month = Integer.parseInt(input);
-                        if (month <= 12) {
-                            cardExpiryTv.setText(cardExpiryTv.getText().toString().substring(0, 1));
-                            cardExpiryTv.setSelection(cardExpiryTv.getText().toString().length());
-                        } else {
-                            cardExpiryTv.setText(getResources().getString(R.string.defaultCardExpiry));
-                            cardExpiryTv.setSelection(cardExpiryTv.getText().toString().length());
-                        }
-                    } catch (NumberFormatException ex) {
-                        cardExpiryTv.setText(input.replace("/", ""));
+                }catch (NumberFormatException ex){
+                    cardExpiryTv.setText(defaultExpiry);
+                    cardExpiryTv.setSelection(cardExpiryTv.getText().toString().length());
+                }
+            } else if (editable.length() == 2 && lastInput.endsWith("/")) {
+                try {
+                    int month = Integer.parseInt(input);
+                    if (month <= 12) {
+                        cardExpiryTv.setText(cardExpiryTv.getText().toString().substring(0, 1));
+                        cardExpiryTv.setSelection(cardExpiryTv.getText().toString().length());
+                    } else {
+                        cardExpiryTv.setText(defaultExpiry);
                         cardExpiryTv.setSelection(cardExpiryTv.getText().toString().length());
-                    } catch (Resources.NotFoundException ex) {
-                        ex.printStackTrace();
                     }
+                } catch (NumberFormatException ex) {
+                    cardExpiryTv.setText(input.replace("/", ""));
+                    cardExpiryTv.setSelection(cardExpiryTv.getText().toString().length());
+                }
 
-                } else if (editable.length() == 1) {
+            } else if (editable.length() == 1) {
+                try {
                     int month = Integer.parseInt(input);
                     if (month > 1) {
-                        cardExpiryTv.setText("0" + cardExpiryTv.getText().toString() + "/");
+                        cardExpiryTv.setText(String.format(getString(R.string.formatted_expiry), input));
                         cardExpiryTv.setSelection(cardExpiryTv.getText().toString().length());
                     }
+                }catch (NumberFormatException ignored){
+
                 }
             }
 
diff --git a/rave_android/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java b/rave_android/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java
index bb1b04ff..46c8b586 100644
--- a/rave_android/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java
+++ b/rave_android/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java
@@ -203,8 +203,10 @@ public void showProgressIndicator(boolean active) {
     public void showWebPage(String authenticationUrl, String flwRef) {
 
         this.flwRef = flwRef;
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showWebpageVerificationScreen(authenticationUrl,flwRef);
+        if (isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showWebpageVerificationScreen(authenticationUrl,flwRef);
+        }
     }
 
 
diff --git a/rave_android/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java b/rave_android/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java
index 0f181776..c6c44803 100644
--- a/rave_android/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java
+++ b/rave_android/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java
@@ -232,8 +232,10 @@ public void showWebPage(String authenticationUrl
     ) {
 
 //        this.flwRef = flwRef;
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showWebpageVerificationScreen(authenticationUrl);
+        if(isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showWebpageVerificationScreen(authenticationUrl);
+        }
     }
 
 
diff --git a/rave_android/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java b/rave_android/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java
index a209b8bf..e26ed457 100644
--- a/rave_android/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java
+++ b/rave_android/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java
@@ -219,8 +219,10 @@ public void showToast(String message) {
 
     @Override
     public void showWebPage(String authenticationUrl) {
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showWebpageVerificationScreen(authenticationUrl);
+        if (isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showWebpageVerificationScreen(authenticationUrl);
+        }
     }
 
     @Override
diff --git a/rave_android/src/main/java/com/flutterwave/raveandroid/sabankaccount/SaBankAccountFragment.java b/rave_android/src/main/java/com/flutterwave/raveandroid/sabankaccount/SaBankAccountFragment.java
index 12d66105..3833fcff 100644
--- a/rave_android/src/main/java/com/flutterwave/raveandroid/sabankaccount/SaBankAccountFragment.java
+++ b/rave_android/src/main/java/com/flutterwave/raveandroid/sabankaccount/SaBankAccountFragment.java
@@ -137,8 +137,10 @@ public void showPollingIndicator(boolean active) {
     @Override
     public void showWebView(String authUrl, String flwRef){
         this.flwRef = flwRef;
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showWebpageVerificationScreen(authUrl);
+        if (isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showWebpageVerificationScreen(authUrl);
+        }
     }
 
     @Override
diff --git a/rave_android/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java b/rave_android/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java
index 13a52e55..bdedac1d 100644
--- a/rave_android/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java
+++ b/rave_android/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java
@@ -234,8 +234,10 @@ public void showToast(String message) {
 
     @Override
     public void showWebPage(String authenticationUrl) {
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showWebpageVerificationScreen(authenticationUrl);
+        if(isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showWebpageVerificationScreen(authenticationUrl);
+        }
     }
 
     @Override
diff --git a/rave_android/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java b/rave_android/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java
index 4493ee30..1f65849e 100644
--- a/rave_android/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java
+++ b/rave_android/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java
@@ -267,8 +267,10 @@ public void showToast(String message) {
 
     @Override
     public void showWebPage(String authenticationUrl) {
-        new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
-                .showWebpageVerificationScreen(authenticationUrl);
+        if(isAdded()){
+            new RaveVerificationUtils(this, ravePayInitializer.isStaging(), ravePayInitializer.getPublicKey(), ravePayInitializer.getTheme())
+                    .showWebpageVerificationScreen(authenticationUrl);
+        }
     }
 
     @Override
diff --git a/rave_android/src/main/res/values/strings.xml b/rave_android/src/main/res/values/strings.xml
index 82858cc5..49295d63 100644
--- a/rave_android/src/main/res/values/strings.xml
+++ b/rave_android/src/main/res/values/strings.xml
@@ -203,5 +203,6 @@
     <string name="please_select_a_card">Please select a card</string>
     <string name="barter_funding">Barter Funding</string>
     <string name="verifying_transaction">Verifying transaction...</string>
+    <string name="formatted_expiry">0%1$s/</string>
 
 </resources>