diff --git a/admin/warm-cache-1.0.groovy b/admin/warm-cache-1.0.groovy
index e3eb87c..f422a96 100644
--- a/admin/warm-cache-1.0.groovy
+++ b/admin/warm-cache-1.0.groovy
@@ -18,32 +18,39 @@
 import com.google.inject.*
 import org.kohsuke.args4j.*
 
+abstract class BaseSshCommand extends SshCommand {
+
+  void println(String msg) {
+    stdout.println msg
+    stdout.flush()
+  }
+}
+
 @Export("projects")
-class WarmProjectsCache extends SshCommand {
+class WarmProjectsCache extends BaseSshCommand {
 
   @Inject
   ProjectCache cache
 
   public void run() {
-    stdout.println "Loading project list ..."
+    println "Loading project list ..."
     def start = System.currentTimeMillis()
-    stdout.flush()
     def allProjects = cache.all()
     def totProjects = allProjects.size()
     def loaded = 0
 
     for ( project in allProjects ) {
-      cache.get(project.get())
+      cache.get(project)
       loaded++
       if (loaded%1000==0) {
-        stdout.println "$loaded of $totProjects projects"
-        stdout.flush()
+        println "$loaded of $totProjects projects"
       }
     }
 
     def elapsed = (System.currentTimeMillis()-start)/1000
-
-    stdout.println "$loaded projects loaded in $elapsed secs"
+    println "$loaded projects loaded in $elapsed secs"
   }
 }
 
+commands = [ WarmProjectsCache ]
+
