diff --git a/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java b/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java
index 8a13030..2cc0e11 100644
--- a/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java
+++ b/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java
@@ -66,20 +66,23 @@
                 () -> {
                     if (Files.notExists(IMAGE_PATH)
                             || !FERROCHROME_VERSION.equals(getVersionInfo())) {
-                        updateStatus("image doesn't exist");
-                        updateStatus("download image");
+                        updateStatus("Starting first-time setup.");
+                        updateStatus(
+                                "Downloading Ferrochrome image. This can take about 5 to 10"
+                                        + " minutes, depending on your network speed.");
                         if (download(FERROCHROME_VERSION)) {
-                            updateStatus("download done");
+                            updateStatus("Done.");
                         } else {
-                            updateStatus("download failed, check internet connection and retry");
+                            updateStatus(
+                                    "Download failed. Check the internet connection and retry.");
                             return;
                         }
                     } else {
-                        updateStatus("there are already downloaded images");
+                        updateStatus("Ferrochrome is already downloaded.");
                     }
-                    updateStatus("write down vm config");
+                    updateStatus("Updating VM config.");
                     copyVmConfigJson();
-                    updateStatus("custom_vm_setup: copy files to /data/local/tmp");
+                    updateStatus("Updating VM images. This may take a few minutes.");
                     SystemProperties.set("debug.custom_vm_setup.start", "true");
                     while (!SystemProperties.getBoolean("debug.custom_vm_setup.done", false)) {
                         // Wait for custom_vm_setup
@@ -88,10 +91,9 @@
                         } catch (Exception e) {
                             Log.d(TAG, e.toString());
                         }
-                        updateStatus("wait for custom_vm_setup");
                     }
-                    updateStatus("enable vmlauncher");
-                    updateStatus("ready for ferrochrome");
+                    updateStatus("Done.");
+                    updateStatus("Starting Ferrochrome...");
                     runOnUiThread(
                             () ->
                                     startActivity(
