diff --git a/sl4a/Common/src/com/googlecode/android_scripting/event/EventObserver.java b/sl4a/Common/src/com/googlecode/android_scripting/event/EventObserver.java
new file mode 100644
index 0000000..6f4066e
--- /dev/null
+++ b/sl4a/Common/src/com/googlecode/android_scripting/event/EventObserver.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2016 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.googlecode.android_scripting.event;
+
+
+public interface EventObserver {
+        public void onEventReceived(Event event);
+}
diff --git a/sl4a/Common/src/com/googlecode/android_scripting/facade/EventServer.java b/sl4a/Common/src/com/googlecode/android_scripting/event/EventServer.java
similarity index 91%
rename from sl4a/Common/src/com/googlecode/android_scripting/facade/EventServer.java
rename to sl4a/Common/src/com/googlecode/android_scripting/event/EventServer.java
index 842c4f1..325c740 100644
--- a/sl4a/Common/src/com/googlecode/android_scripting/facade/EventServer.java
+++ b/sl4a/Common/src/com/googlecode/android_scripting/event/EventServer.java
@@ -14,11 +14,10 @@
  * the License.
  */
 
-package com.googlecode.android_scripting.facade;
+package com.googlecode.android_scripting.event;
 
 import com.googlecode.android_scripting.Log;
 import com.googlecode.android_scripting.SimpleServer;
-import com.googlecode.android_scripting.event.Event;
 import com.googlecode.android_scripting.jsonrpc.JsonBuilder;
 
 import java.io.BufferedReader;
@@ -34,11 +33,9 @@
 /**
  * An Event Forwarding server that forwards events from the rpc queue in realtime to listener
  * clients.
- * 
- * @author Manuel Naranjo (manuel@aircable.net)
- * @see com.googlecode.android_scripting.SimpleServer
+ *
  */
-public class EventServer extends SimpleServer implements EventFacade.EventObserver {
+public class EventServer extends SimpleServer implements EventObserver {
   private static final Vector<Listener> mListeners = new Vector<Listener>();
   private InetSocketAddress address = null;
 
diff --git a/sl4a/Common/src/com/googlecode/android_scripting/facade/EventFacade.java b/sl4a/Common/src/com/googlecode/android_scripting/facade/EventFacade.java
index 46c0fbc..36e620d 100644
--- a/sl4a/Common/src/com/googlecode/android_scripting/facade/EventFacade.java
+++ b/sl4a/Common/src/com/googlecode/android_scripting/facade/EventFacade.java
@@ -37,6 +37,8 @@
 import com.google.common.collect.Multimaps;
 import com.googlecode.android_scripting.Log;
 import com.googlecode.android_scripting.event.Event;
+import com.googlecode.android_scripting.event.EventObserver;
+import com.googlecode.android_scripting.event.EventServer;
 import com.googlecode.android_scripting.future.FutureResult;
 import com.googlecode.android_scripting.jsonrpc.JsonBuilder;
 import com.googlecode.android_scripting.jsonrpc.RpcReceiver;
@@ -406,10 +408,6 @@
         mGlobalEventObservers.remove(observer);
     }
 
-    public interface EventObserver {
-        public void onEventReceived(Event event);
-    }
-
     public class BroadcastListener extends android.content.BroadcastReceiver {
         private EventFacade mParent;
         private boolean mEnQueue;
diff --git a/sl4a/Common/src/com/googlecode/android_scripting/interpreter/html/HtmlActivityTask.java b/sl4a/Common/src/com/googlecode/android_scripting/interpreter/html/HtmlActivityTask.java
index 84eaf1b..a222602 100644
--- a/sl4a/Common/src/com/googlecode/android_scripting/interpreter/html/HtmlActivityTask.java
+++ b/sl4a/Common/src/com/googlecode/android_scripting/interpreter/html/HtmlActivityTask.java
@@ -36,6 +36,7 @@
 import com.googlecode.android_scripting.Log;
 import com.googlecode.android_scripting.SingleThreadExecutor;
 import com.googlecode.android_scripting.event.Event;
+import com.googlecode.android_scripting.event.EventObserver;
 import com.googlecode.android_scripting.facade.EventFacade;
 import com.googlecode.android_scripting.facade.ui.UiFacade;
 import com.googlecode.android_scripting.future.FutureActivityTask;
@@ -242,7 +243,7 @@
     }
   }
 
-  private class HtmlEventObserver implements EventFacade.EventObserver {
+  private class HtmlEventObserver implements EventObserver {
     private Map<String, Set<Integer>> mEventMap = new HashMap<String, Set<Integer>>();
 
     public void register(String eventName, Integer id) {
diff --git a/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/TriggerService.java b/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/TriggerService.java
index ed9a4bf..8024533 100644
--- a/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/TriggerService.java
+++ b/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/TriggerService.java
@@ -31,8 +31,8 @@
 import com.googlecode.android_scripting.NotificationIdFactory;
 import com.googlecode.android_scripting.R;
 import com.googlecode.android_scripting.event.Event;
+import com.googlecode.android_scripting.event.EventObserver;
 import com.googlecode.android_scripting.facade.EventFacade;
-import com.googlecode.android_scripting.facade.EventFacade.EventObserver;
 import com.googlecode.android_scripting.facade.FacadeConfiguration;
 import com.googlecode.android_scripting.facade.FacadeManager;
 import com.googlecode.android_scripting.trigger.EventGenerationControllingObserver;
