diff --git a/src/VNCFlinger.h b/src/VNCFlinger.h
new file mode 100644
index 0000000..45057b5
--- /dev/null
+++ b/src/VNCFlinger.h
@@ -0,0 +1,58 @@
+#ifndef VNCFLINGER_H
+#define VNCFLINGER_H
+
+#include "EventQueue.h"
+#include "VirtualDisplay.h"
+
+#include <ui/DisplayInfo.h>
+
+#include "rfb/rfb.h"
+
+#define VNC_PORT 5901
+
+namespace android {
+
+class VNCFlinger : public EventListener {
+public:
+    VNCFlinger(int argc, char **argv) :
+            mArgc(argc),
+            mArgv(argv),
+            mClientCount(0) {
+    }
+
+    virtual void onEvent(const Event& event);
+
+    virtual status_t start();
+    virtual status_t stop();
+
+    static EventQueue *sQueue;
+
+private:
+    virtual status_t setup_l();
+    virtual void release_l();
+
+    static ClientGoneHookPtr onClientGone(rfbClientPtr cl);
+    static enum rfbNewClientAction onNewClient(rfbClientPtr cl);
+    static void rfbLogger(const char *format, ...);
+        
+    rfbScreenInfoPtr mVNCScreen;
+    uint8_t *mVNCBuf;
+
+    uint32_t mWidth, mHeight;
+    bool mRotate;
+
+    sp<IBinder> mMainDpy;
+    DisplayInfo mMainDpyInfo;
+    
+    Mutex mMutex;
+
+    sp<VirtualDisplay> mVirtualDisplay;
+
+    int mArgc;
+    char **mArgv;
+
+    size_t mClientCount;
+};
+
+};
+#endif
