diff --git a/crosperf/results_cache.py b/crosperf/results_cache.py
index 0b921b0..93a7a41 100644
--- a/crosperf/results_cache.py
+++ b/crosperf/results_cache.py
@@ -13,6 +13,7 @@
 from perf_processor import PerfProcessor
 from utils import command_executer
 from utils import logger
+from utils import misc
 
 
 SCRATCH_DIR = "/home/%s/cros_scratch" % getpass.getuser()
@@ -83,7 +84,7 @@
 
   def _FormCacheDir(self, list_of_strings):
     cache_key = " ".join(list_of_strings)
-    cache_dir = self._ConvertToFilename(cache_key)
+    cache_dir = misc.GetFilenameFromString(cache_key)
     cache_path = os.path.join(SCRATCH_DIR, cache_dir)
     return cache_path
 
@@ -182,14 +183,6 @@
 
     return PerfProcessor.PerfResults(report, output)
 
-  def _ConvertToFilename(self, text):
-    ret = text
-    ret = re.sub("/", "__", ret)
-    ret = re.sub(" ", "_", ret)
-    ret = re.sub("=", "", ret)
-    ret = re.sub("\"", "", ret)
-    return ret
-
 
 class MockResultsCache(object):
   def Init(self, *args):
diff --git a/crosperf/results_report.py b/crosperf/results_report.py
index ec6d7df..0cd46ed 100644
--- a/crosperf/results_report.py
+++ b/crosperf/results_report.py
@@ -156,8 +156,8 @@
     return self.TEXT % (self.experiment.name,
                         self.GetStatusTable().ToText(),
                         self.experiment.machine_manager.num_reimages,
-                        self.GetSummaryTable().ToText(30),
-                        self.GetFullTable().ToText(30),
+                        self.GetSummaryTable().ToText(80),
+                        self.GetFullTable().ToText(80),
                         self.experiment.experiment_file)
 
 
@@ -354,4 +354,3 @@
         if chart:
           charts.append(chart)
     return charts
-
diff --git a/crosperf/settings_factory.py b/crosperf/settings_factory.py
index b9a18fe..7f6ac00 100644
--- a/crosperf/settings_factory.py
+++ b/crosperf/settings_factory.py
@@ -20,7 +20,7 @@
     self.AddField(TextField("autotest_args",
                             description="Arguments to be passed to the "
                             "autotest."))
-    self.AddField(IntegerField("iterations", default=3,
+    self.AddField(IntegerField("iterations", default=1,
                                description="Number of iterations to run the "
                                "autotest."))
     self.AddField(FloatField("outlier_range", default=0.2,
@@ -71,7 +71,7 @@
     self.AddField(BooleanField("exact_remote", default=False,
                                description="Ensure cached runs are run on the "
                                "same device that is specified as a remote."))
-    self.AddField(IntegerField("iterations", default=3,
+    self.AddField(IntegerField("iterations", default=1,
                                description="Number of iterations to run all "
                                "autotests."))
     self.AddField(TextField("chromeos_root",
