diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
index c0572d7..5c876c7 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
@@ -275,7 +275,11 @@
             if (!engine.needsRecompile()) continue;
             compile = true;
             log.info("[EXT-SCRIPTING] compiling " + engine.getEngineTypeAsStr() + " files");
-            engine.compile();
+            CompilationResult result = engine.compile();
+            if(result != null) {
+                WeavingContext.getInstance().setCompilationResult(engine.getEngineType(), result);
+            }
+            
             log.info("[EXT-SCRIPTING] compiling " + engine.getEngineTypeAsStr() + " files done");
         }
         return compile;
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/BaseEngine.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/BaseEngine.java
index c4ab95d..6a12cc7 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/BaseEngine.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/BaseEngine.java
@@ -95,7 +95,8 @@
             {
                 ClassResource classToProcess = new ClassResource();
                 classToProcess.setFile(sourceFile);
-                classToProcess.setLastLoaded(-1);
+
+
                 classToProcess.setScriptingEngine(getEngineType());
                 if (!_watchedResources.containsKey(classToProcess.getIdentifier()))
                 {
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/EngineGroovy.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/EngineGroovy.java
index 35fdeb8..5d74d00 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/EngineGroovy.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/EngineGroovy.java
@@ -22,6 +22,7 @@
 import rewrite.org.apache.myfaces.extensions.scripting.core.api.Configuration;
 import rewrite.org.apache.myfaces.extensions.scripting.core.api.WeavingContext;
 import rewrite.org.apache.myfaces.extensions.scripting.core.common.util.ClassUtils;
+import rewrite.org.apache.myfaces.extensions.scripting.core.engine.api.CompilationResult;
 import rewrite.org.apache.myfaces.extensions.scripting.core.engine.api.ScriptingEngine;
 import rewrite.org.apache.myfaces.extensions.scripting.core.engine.compiler.GroovyCompiler;
 
@@ -65,17 +66,19 @@
 
     @Override
     //full compile
-    public void compile()
+    public CompilationResult compile()
     {
         WeavingContext context = WeavingContext.getInstance();
         Configuration configuration = context.getConfiguration();
         GroovyCompiler compiler = new GroovyCompiler();
         File targetDir = configuration.getCompileTarget();
         Collection<String> sourceDirs = configuration.getSourceDirs(ENGINE_TYPE_JSF_GROOVY);
+        CompilationResult res = null;
         for (String sourceRoot : sourceDirs)
         {
-            compiler.compile(new File(sourceRoot), targetDir, ClassUtils.getContextClassLoader());
+            res = compiler.compile(new File(sourceRoot), targetDir, ClassUtils.getContextClassLoader());
         }
+        return res;
     }
 
     public void scanDependencies()
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/EngineJava.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/EngineJava.java
index e329ff7..b8a94db 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/EngineJava.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/EngineJava.java
@@ -54,22 +54,23 @@
      * full compile will be called cyclicly
      * from the startup and daemon thread
      */
-    public void compile()
+    public CompilationResult compile()
     {
         WeavingContext context = WeavingContext.getInstance();
         Configuration configuration = context.getConfiguration();
         JSR199Compiler compiler = new JSR199Compiler();
         File targetDir = configuration.getCompileTarget();
         Collection<String> sourceDirs = configuration.getSourceDirs(getEngineType());
+        CompilationResult res = null;
         for (String sourceRoot : sourceDirs)
         {
-            CompilationResult res =  compiler.compile(new File(sourceRoot), targetDir,
+            res =  compiler.compile(new File(sourceRoot), targetDir,
                 ClassUtils.getContextClassLoader());
             if(res.hasErrors()) {
                 log.severe(res.getCompilerOutput());
             }
-
         }
+        return res;
     }
 
     public void scanDependencies()
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/api/ScriptingEngine.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/api/ScriptingEngine.java
index 8cb18d4..09d23bb 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/api/ScriptingEngine.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/api/ScriptingEngine.java
@@ -63,7 +63,7 @@
     /**
      * runs the compile cycle for this engine
      */
-    public void compile();
+    public CompilationResult compile();
 
     /**
      * checks if the current engine has tainted classes
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompiler.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompiler.java
index 0ce2f82..8271b4a 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompiler.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/compiler/GroovyCompiler.java
@@ -96,9 +96,6 @@
             result.registerWarning(convertMessage(collector.getWarning(i)));
         }
 
-        if(result != null) {
-             WeavingContext.getInstance().setCompilationResult(ScriptingConst.ENGINE_TYPE_JSF_GROOVY, result);
-        }
 
         return result;
     }
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/compiler/JSR199Compiler.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/compiler/JSR199Compiler.java
index 68a0e56..efe0039 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/compiler/JSR199Compiler.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/engine/compiler/JSR199Compiler.java
@@ -102,7 +102,7 @@
 
             CompilationResult result =  handleDiagnostics(diagnosticCollector);
 
-            WeavingContext.getInstance().setCompilationResult(ScriptingConst.ENGINE_TYPE_JSF_JAVA, result);
+
             return result;
 
     }
diff --git a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/monitor/WatchedResource.java b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/monitor/WatchedResource.java
index ae9abe5..f93edbb 100644
--- a/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/monitor/WatchedResource.java
+++ b/extscript-core-root/extscript-core/src/main/java/rewrite/org/apache/myfaces/extensions/scripting/core/monitor/WatchedResource.java
@@ -36,7 +36,7 @@
      */
     volatile boolean tainted = false;
 
-    volatile long  _lastLoaded = -1L;
+    //volatile long  _lastLoaded = -1L;
 
     /**
      * Unique identifier on the resource
@@ -50,13 +50,6 @@
      */
     public abstract File getFile();
 
-    /**
-     * @return  additional refresh attribute metadata
-     */
-    //public RefreshAttribute getRefreshAttribute() {
-    //    return _refreshAttribute;
-    //}
-
     public WatchedResource getClone()  {
         try {
             return (WatchedResource) super.clone();
@@ -65,16 +58,6 @@
         }
     }
 
-    public long getLastLoaded()
-    {
-        return _lastLoaded;
-    }
-
-    public void setLastLoaded(long lastLoaded)
-    {
-        _lastLoaded = lastLoaded;
-    }
-
     public boolean isTainted()
     {
         return tainted;
