   void displayMenu(){
       lcd.clear();
       lcd.setCursor ( 0, 0 );            // go to the top left corner
-      lcd.print("<  Navigation  >"); // write this string on the top row
+      lcd.print(F("<  Navigation  >")); // write this string on the top row
       lcd.setCursor ( 0, 1 );            // go to the 2nd row
-      lcd.print("<     Setup    >");
+      lcd.print(F("<     Setup    >"));
 
       }
   
   void display2Menu(){
       lcd2.clear();
       lcd2.setCursor(0,0);
-      lcd2.print("Current Waypoint:");
+      lcd2.print(F("Current Waypoint:"));
       lcd2.print(mCurrentWayPoint);
       
       lcd2.setCursor(0,1);
-      lcd2.print("   --------------");
+      lcd2.print(F("   --------------"));
       lcd2.setCursor(3,2);
-      lcd2.print("I");
+      lcd2.print(F("I"));
       lcd2.setCursor(6,2);
       lcd2.print(mMenu[mMenuPosition]);
       lcd2.setCursor(16,2);
-      lcd2.print("I");
+      lcd2.print(F("I"));
       lcd2.setCursor(0,3);
-      lcd2.print("   --------------");
+      lcd2.print(F("   --------------"));
   }
   void executeCommand(int cmd){
     float heading;

              case CMD_DELETE_WAY_POINT:
         lcd.clear();
         lcd.setCursor(0,0);
         lcd.print("    Deleting ");
                  lcd.setCursor(0,1);
         lcd.print("    Waypoint ");

         lcd2.clear();
         lcd2.setCursor(0,0);
         lcd2.print("----- Deleting -----");
         lcd2.setCursor(0,1);
         lcd2.print(" LAT: ");
         lcd2.print(mLat[mCurrentWayPoint], 8);
         lcd2.setCursor(0,2);
         lcd2.print(" LON: ");
         lcd2.print(mLon[mCurrentWayPoint], 8);
         lcd2.setCursor(0,3);
         lcd2.print("--- Waypoint :");
         lcd2.print(mCurrentWayPoint);
         lcd2.setCursor(17,3);
         lcd2.print("---");
         mLat[mCurrentWayPoint] = 0.0;
         mLon[mCurrentWayPoint] = 0.0;
         delay(5000);

           //Advance to next way point
           mCurrentWayPoint++;
           lcd2.setCursor(0,3);
           lcd2.print(F("**Waypoint Reached**"));
         } else {
           //Navigate to the way point
           if(abs(compassHeading - heading) < 5){
             lcd2.setCursor(0,3);
             lcd2.print(F("  Command: FORWARD"));
             forward(); 
           } else if (compassHeading > heading) {
             lcd2.setCursor(0,3);
             lcd2.print(F("  Command: LEFT")); 
             left();
           } else {
             lcd2.setCursor(0,3);
             lcd2.print(F("  Command: RIGHT"));
             right(); 
           }
         }
         lcd2.setCursor(11,1);
         lcd2.print(F("G:"));
         lcd2.print(heading);
         lcd2.setCursor(0,2);
         lcd2.print(F("Distance: "));
         lcd2.print(formatDistance(distance));
       break;
       case CMD_ADD_WAY_POINT:
         lcd.clear();
         lcd.setCursor(0,0);
         lcd.print(F("     Adding"));
         lcd.setCursor(0,1);
         lcd.print(F("    Waypoint"));
         lcd2.clear();
         lcd2.setCursor(0,0);
         lcd2.print(F("------ Saving ------"));
         lcd2.setCursor(0,1);
         lcd2.print(F(" LAT: "));
         lcd2.print(flat, 8);
         lcd2.setCursor(0,2);
         lcd2.print(F(" LON: "));
         lcd2.print(flon, 8);
         lcd2.setCursor(0,3);
         lcd2.print(F("-- To Waypoint :"));
         lcd2.print(mCurrentWayPoint);
         lcd2.setCursor(18,3);
         lcd2.print(F("--"));

         mLat[mCurrentWayPoint] = flat;
         mLon[mCurrentWayPoint] = flon;
