included MOC compiler for Qt implementation

Changed the Layer namings, to avoid the PITA of having all layers start with Layer<foo>.
Added moc generated moc file to the Qt implementation (this is to avoid everybody needing to run moc)
Ready to all graphic in the Qt implementation.
The Web implementation has been verified on paper, but will not be implemented until Qt works.
diff --git a/experiments/editorFramework/src/Layer2_API/EDJSInterface.h b/experiments/editorFramework/src/API_Layer_2/EDJSInterface.h
similarity index 100%
rename from experiments/editorFramework/src/Layer2_API/EDJSInterface.h
rename to experiments/editorFramework/src/API_Layer_2/EDJSInterface.h
diff --git a/experiments/editorFramework/src/Layer2_API/EDJSInterface.m b/experiments/editorFramework/src/API_Layer_2/EDJSInterface.m
similarity index 100%
rename from experiments/editorFramework/src/Layer2_API/EDJSInterface.m
rename to experiments/editorFramework/src/API_Layer_2/EDJSInterface.m
diff --git a/experiments/editorFramework/src/Layer2_API/Layer2_interface.h b/experiments/editorFramework/src/API_Layer_2/Layer2_interface.h
similarity index 100%
rename from experiments/editorFramework/src/Layer2_API/Layer2_interface.h
rename to experiments/editorFramework/src/API_Layer_2/Layer2_interface.h
diff --git a/experiments/editorFramework/src/Layer2_API/README b/experiments/editorFramework/src/API_Layer_2/README
similarity index 100%
rename from experiments/editorFramework/src/Layer2_API/README
rename to experiments/editorFramework/src/API_Layer_2/README
diff --git a/experiments/editorFramework/src/Layer4_Docformat/README b/experiments/editorFramework/src/Docformat_Layer_4/README
similarity index 100%
rename from experiments/editorFramework/src/Layer4_Docformat/README
rename to experiments/editorFramework/src/Docformat_Layer_4/README
diff --git a/experiments/editorFramework/src/Layer3_Handling/README b/experiments/editorFramework/src/Handling_Layer_3/README
similarity index 100%
rename from experiments/editorFramework/src/Layer3_Handling/README
rename to experiments/editorFramework/src/Handling_Layer_3/README
diff --git a/experiments/editorFramework/src/Layer0_Javascript/3rdparty/showdown/license.txt b/experiments/editorFramework/src/Javascript_Layer_0/3rdparty/showdown/license.txt
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/3rdparty/showdown/license.txt
rename to experiments/editorFramework/src/Javascript_Layer_0/3rdparty/showdown/license.txt
diff --git a/experiments/editorFramework/src/Layer0_Javascript/3rdparty/showdown/showdown.js b/experiments/editorFramework/src/Javascript_Layer_0/3rdparty/showdown/showdown.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/3rdparty/showdown/showdown.js
rename to experiments/editorFramework/src/Javascript_Layer_0/3rdparty/showdown/showdown.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/AutoCorrect.js b/experiments/editorFramework/src/Javascript_Layer_0/AutoCorrect.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/AutoCorrect.js
rename to experiments/editorFramework/src/Javascript_Layer_0/AutoCorrect.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/ChangeTracking.js b/experiments/editorFramework/src/Javascript_Layer_0/ChangeTracking.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/ChangeTracking.js
rename to experiments/editorFramework/src/Javascript_Layer_0/ChangeTracking.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Clipboard.js b/experiments/editorFramework/src/Javascript_Layer_0/Clipboard.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Clipboard.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Clipboard.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Cursor.js b/experiments/editorFramework/src/Javascript_Layer_0/Cursor.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Cursor.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Cursor.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/DOM.js b/experiments/editorFramework/src/Javascript_Layer_0/DOM.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/DOM.js
rename to experiments/editorFramework/src/Javascript_Layer_0/DOM.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Editor.js b/experiments/editorFramework/src/Javascript_Layer_0/Editor.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Editor.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Editor.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/ElementTypes.js b/experiments/editorFramework/src/Javascript_Layer_0/ElementTypes.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/ElementTypes.js
rename to experiments/editorFramework/src/Javascript_Layer_0/ElementTypes.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Equations.js b/experiments/editorFramework/src/Javascript_Layer_0/Equations.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Equations.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Equations.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Figures.js b/experiments/editorFramework/src/Javascript_Layer_0/Figures.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Figures.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Figures.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Formatting.js b/experiments/editorFramework/src/Javascript_Layer_0/Formatting.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Formatting.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Formatting.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Hierarchy.js b/experiments/editorFramework/src/Javascript_Layer_0/Hierarchy.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Hierarchy.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Hierarchy.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Input.js b/experiments/editorFramework/src/Javascript_Layer_0/Input.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Input.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Input.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Lists.js b/experiments/editorFramework/src/Javascript_Layer_0/Lists.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Lists.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Lists.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Main.js b/experiments/editorFramework/src/Javascript_Layer_0/Main.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Main.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Main.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Metadata.js b/experiments/editorFramework/src/Javascript_Layer_0/Metadata.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Metadata.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Metadata.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/NodeSet.js b/experiments/editorFramework/src/Javascript_Layer_0/NodeSet.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/NodeSet.js
rename to experiments/editorFramework/src/Javascript_Layer_0/NodeSet.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Outline.js b/experiments/editorFramework/src/Javascript_Layer_0/Outline.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Outline.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Outline.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Position.js b/experiments/editorFramework/src/Javascript_Layer_0/Position.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Position.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Position.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/PostponedActions.js b/experiments/editorFramework/src/Javascript_Layer_0/PostponedActions.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/PostponedActions.js
rename to experiments/editorFramework/src/Javascript_Layer_0/PostponedActions.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Preview.js b/experiments/editorFramework/src/Javascript_Layer_0/Preview.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Preview.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Preview.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/README b/experiments/editorFramework/src/Javascript_Layer_0/README
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/README
rename to experiments/editorFramework/src/Javascript_Layer_0/README
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Range.js b/experiments/editorFramework/src/Javascript_Layer_0/Range.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Range.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Range.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Scan.js b/experiments/editorFramework/src/Javascript_Layer_0/Scan.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Scan.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Scan.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Selection.js b/experiments/editorFramework/src/Javascript_Layer_0/Selection.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Selection.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Selection.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/StringBuilder.js b/experiments/editorFramework/src/Javascript_Layer_0/StringBuilder.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/StringBuilder.js
rename to experiments/editorFramework/src/Javascript_Layer_0/StringBuilder.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Styles.js b/experiments/editorFramework/src/Javascript_Layer_0/Styles.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Styles.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Styles.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Tables.js b/experiments/editorFramework/src/Javascript_Layer_0/Tables.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Tables.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Tables.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Text.js b/experiments/editorFramework/src/Javascript_Layer_0/Text.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Text.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Text.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/UndoManager.js b/experiments/editorFramework/src/Javascript_Layer_0/UndoManager.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/UndoManager.js
rename to experiments/editorFramework/src/Javascript_Layer_0/UndoManager.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/Viewport.js b/experiments/editorFramework/src/Javascript_Layer_0/Viewport.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/Viewport.js
rename to experiments/editorFramework/src/Javascript_Layer_0/Viewport.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/check-dom-methods.sh b/experiments/editorFramework/src/Javascript_Layer_0/check-dom-methods.sh
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/check-dom-methods.sh
rename to experiments/editorFramework/src/Javascript_Layer_0/check-dom-methods.sh
diff --git a/experiments/editorFramework/src/Layer0_Javascript/dtdsource/dtd.js b/experiments/editorFramework/src/Javascript_Layer_0/dtdsource/dtd.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/dtdsource/dtd.js
rename to experiments/editorFramework/src/Javascript_Layer_0/dtdsource/dtd.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/dtdsource/gen_dtd_data.html b/experiments/editorFramework/src/Javascript_Layer_0/dtdsource/gen_dtd_data.html
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/dtdsource/gen_dtd_data.html
rename to experiments/editorFramework/src/Javascript_Layer_0/dtdsource/gen_dtd_data.html
diff --git a/experiments/editorFramework/src/Layer0_Javascript/dtdsource/html4.dtd b/experiments/editorFramework/src/Javascript_Layer_0/dtdsource/html4.dtd
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/dtdsource/html4.dtd
rename to experiments/editorFramework/src/Javascript_Layer_0/dtdsource/html4.dtd
diff --git a/experiments/editorFramework/src/Layer0_Javascript/dtdsource/html4.xml b/experiments/editorFramework/src/Javascript_Layer_0/dtdsource/html4.xml
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/dtdsource/html4.xml
rename to experiments/editorFramework/src/Javascript_Layer_0/dtdsource/html4.xml
diff --git a/experiments/editorFramework/src/Layer0_Javascript/elementtypes/elements.txt b/experiments/editorFramework/src/Javascript_Layer_0/elementtypes/elements.txt
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/elementtypes/elements.txt
rename to experiments/editorFramework/src/Javascript_Layer_0/elementtypes/elements.txt
diff --git a/experiments/editorFramework/src/Layer0_Javascript/elementtypes/genelementtypes.pl b/experiments/editorFramework/src/Javascript_Layer_0/elementtypes/genelementtypes.pl
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/elementtypes/genelementtypes.pl
rename to experiments/editorFramework/src/Javascript_Layer_0/elementtypes/genelementtypes.pl
diff --git a/experiments/editorFramework/src/Layer0_Javascript/empty.html b/experiments/editorFramework/src/Javascript_Layer_0/empty.html
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/empty.html
rename to experiments/editorFramework/src/Javascript_Layer_0/empty.html
diff --git a/experiments/editorFramework/src/Layer0_Javascript/first.js b/experiments/editorFramework/src/Javascript_Layer_0/first.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/first.js
rename to experiments/editorFramework/src/Javascript_Layer_0/first.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/traversal.js b/experiments/editorFramework/src/Javascript_Layer_0/traversal.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/traversal.js
rename to experiments/editorFramework/src/Javascript_Layer_0/traversal.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/types.js b/experiments/editorFramework/src/Javascript_Layer_0/types.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/types.js
rename to experiments/editorFramework/src/Javascript_Layer_0/types.js
diff --git a/experiments/editorFramework/src/Layer0_Javascript/util.js b/experiments/editorFramework/src/Javascript_Layer_0/util.js
similarity index 100%
rename from experiments/editorFramework/src/Layer0_Javascript/util.js
rename to experiments/editorFramework/src/Javascript_Layer_0/util.js
diff --git a/experiments/editorFramework/src/Layer1_toolkit/Layer1_interface.hpp b/experiments/editorFramework/src/Toolkit_Layer_1/Layer1_interface.hpp
similarity index 100%
rename from experiments/editorFramework/src/Layer1_toolkit/Layer1_interface.hpp
rename to experiments/editorFramework/src/Toolkit_Layer_1/Layer1_interface.hpp
diff --git a/experiments/editorFramework/src/Layer1_toolkit/README b/experiments/editorFramework/src/Toolkit_Layer_1/README
similarity index 100%
rename from experiments/editorFramework/src/Layer1_toolkit/README
rename to experiments/editorFramework/src/Toolkit_Layer_1/README
diff --git a/experiments/editorFramework/src/Layer1_toolkit/qt/README b/experiments/editorFramework/src/Toolkit_Layer_1/qt/README
similarity index 100%
rename from experiments/editorFramework/src/Layer1_toolkit/qt/README
rename to experiments/editorFramework/src/Toolkit_Layer_1/qt/README
diff --git a/experiments/editorFramework/src/Toolkit_Layer_1/qt/moc_windows.cpp b/experiments/editorFramework/src/Toolkit_Layer_1/qt/moc_windows.cpp
new file mode 100644
index 0000000..a7022d6
--- /dev/null
+++ b/experiments/editorFramework/src/Toolkit_Layer_1/qt/moc_windows.cpp
@@ -0,0 +1,89 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'windows.hpp'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "windows.hpp"
+#include <QtCore/qbytearray.h>
+#include <QtCore/qmetatype.h>
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'windows.hpp' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+struct qt_meta_stringdata_MainWindow_t {
+    QByteArrayData data[1];
+    char stringdata0[11];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+    qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \
+        - idx * sizeof(QByteArrayData)) \
+    )
+static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = {
+    {
+QT_MOC_LITERAL(0, 0, 10) // "MainWindow"
+
+    },
+    "MainWindow"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_MainWindow[] = {
+
+ // content:
+       7,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       0,       // signalCount
+
+       0        // eod
+};
+
+void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+    Q_UNUSED(_o);
+    Q_UNUSED(_id);
+    Q_UNUSED(_c);
+    Q_UNUSED(_a);
+}
+
+const QMetaObject MainWindow::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_MainWindow.data,
+      qt_meta_data_MainWindow,  qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
+};
+
+
+const QMetaObject *MainWindow::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *MainWindow::qt_metacast(const char *_clname)
+{
+    if (!_clname) return Q_NULLPTR;
+    if (!strcmp(_clname, qt_meta_stringdata_MainWindow.stringdata0))
+        return static_cast<void*>(const_cast< MainWindow*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/experiments/editorFramework/src/Layer1_toolkit/qt/qt_toolkit.cpp b/experiments/editorFramework/src/Toolkit_Layer_1/qt/qt_toolkit.cpp
similarity index 66%
rename from experiments/editorFramework/src/Layer1_toolkit/qt/qt_toolkit.cpp
rename to experiments/editorFramework/src/Toolkit_Layer_1/qt/qt_toolkit.cpp
index 4e1fba4..0599b8f 100644
--- a/experiments/editorFramework/src/Layer1_toolkit/qt/qt_toolkit.cpp
+++ b/experiments/editorFramework/src/Toolkit_Layer_1/qt/qt_toolkit.cpp
@@ -20,23 +20,41 @@
 
 
 
-toolkit * toolkit::createInstance(toolkit_callback *tk, int debug_level) {
-    return (toolkit *)new qt_toolkit();
+// Constructor/Destructor
+qt_toolkit::qt_toolkit(toolkit_callback *setCallback, int setDebugLevel) {
+    int    argc = 0;
+    char **argv = NULL;
+
+
+    callback   = setCallback;
+    debugLevel = setDebugLevel;
+    app        = new QApplication(argc, argv);
+}
+qt_toolkit::~qt_toolkit() {
+    if (window)
+        delete window;
+    if (app)
+        delete app;
 }
 
 
 
-bool qt_toolkit::startWindow() {
-    int    argc = 0;
-    char **argv = NULL;
+// Instanciate the derived class.
+toolkit * toolkit::createInstance(toolkit_callback *tk, int setDebugLevel) {
+    return (toolkit *)new qt_toolkit(tk, setDebugLevel);
+}
 
-    app    = new QApplication(argc, argv);
+
+
+// Prepare graphic
+bool qt_toolkit::startWindow() {
     window = new MainWindow(app);
     return true;
 }
 
 
 
+// Sart message loop, and to not return
 void qt_toolkit::run() {
     window->show();
     app->exec();
@@ -44,14 +62,7 @@
 
 
 
+// Activate Javascript function
 bool qt_toolkit::callJavascript(const char *function) {
     return true;
 }
-
-
-
-#if 0
-{
-}
-
-#endif
\ No newline at end of file
diff --git a/experiments/editorFramework/src/Layer1_toolkit/qt/qt_toolkit.hpp b/experiments/editorFramework/src/Toolkit_Layer_1/qt/qt_toolkit.hpp
similarity index 90%
rename from experiments/editorFramework/src/Layer1_toolkit/qt/qt_toolkit.hpp
rename to experiments/editorFramework/src/Toolkit_Layer_1/qt/qt_toolkit.hpp
index 84da8b2..6603e41 100644
--- a/experiments/editorFramework/src/Layer1_toolkit/qt/qt_toolkit.hpp
+++ b/experiments/editorFramework/src/Toolkit_Layer_1/qt/qt_toolkit.hpp
@@ -14,17 +14,19 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-
 #pragma once
 #include "../toolkit.hpp"
 #include <QtWidgets/QApplication>
 
+
+
 /*
  * Implementation of toolkit generic interface in Qt
  *
  */
 
 
+
 class qt_toolkit : toolkit
 {
     /* toolkit qt implementation */
@@ -35,6 +37,14 @@
     void run();
     bool callJavascript(const char *function);
 
+
+
+    // Constructor/Destructor
+    qt_toolkit(toolkit_callback *setCallback, int setDebugLevel);
+    ~qt_toolkit();
+
+
+
 private: 
     QApplication     *app;
     MainWindow       *window;
diff --git a/experiments/editorFramework/src/Layer1_toolkit/qt/qt_toolkit.cpp b/experiments/editorFramework/src/Toolkit_Layer_1/qt/windows.cpp
similarity index 63%
copy from experiments/editorFramework/src/Layer1_toolkit/qt/qt_toolkit.cpp
copy to experiments/editorFramework/src/Toolkit_Layer_1/qt/windows.cpp
index 4e1fba4..57a9686 100644
--- a/experiments/editorFramework/src/Layer1_toolkit/qt/qt_toolkit.cpp
+++ b/experiments/editorFramework/src/Toolkit_Layer_1/qt/windows.cpp
@@ -16,42 +16,9 @@
 
 #pragma once
 #include "windows.hpp"
-#include "qt_toolkit.hpp"
 
 
-
-toolkit * toolkit::createInstance(toolkit_callback *tk, int debug_level) {
-    return (toolkit *)new qt_toolkit();
+MainWindow::MainWindow(QApplication *app) {
 }
-
-
-
-bool qt_toolkit::startWindow() {
-    int    argc = 0;
-    char **argv = NULL;
-
-    app    = new QApplication(argc, argv);
-    window = new MainWindow(app);
-    return true;
+MainWindow::~MainWindow() {
 }
-
-
-
-void qt_toolkit::run() {
-    window->show();
-    app->exec();
-}
-
-
-
-bool qt_toolkit::callJavascript(const char *function) {
-    return true;
-}
-
-
-
-#if 0
-{
-}
-
-#endif
\ No newline at end of file
diff --git a/experiments/editorFramework/src/Layer1_toolkit/qt/windows.hpp b/experiments/editorFramework/src/Toolkit_Layer_1/qt/windows.hpp
similarity index 92%
rename from experiments/editorFramework/src/Layer1_toolkit/qt/windows.hpp
rename to experiments/editorFramework/src/Toolkit_Layer_1/qt/windows.hpp
index cdf0ee7..07d6eff 100644
--- a/experiments/editorFramework/src/Layer1_toolkit/qt/windows.hpp
+++ b/experiments/editorFramework/src/Toolkit_Layer_1/qt/windows.hpp
@@ -14,25 +14,30 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-
 #pragma once
+#include <QtWidgets/QWidget>
+
+
 
 /******************** WINDOWS.HPP ********************
  * This file contain all the graphical classes 
  * inherited from Qt
  */
 
-#include <QtWidgets/QWidget>
 
 
-
+// Main window, this adds all other widgets inside
 class MainWindow : public QWidget
 {
     Q_OBJECT
 public:
     MainWindow(QApplication *app);
-    virtual ~MainWindow();
-    public slots:
+    ~MainWindow();
+
+
+    
+public slots:
+/*
     void insertTable();
     void insertLink();
     void insertCharacter();
@@ -41,6 +46,9 @@
     void moveRight();
     void undo();
     void redo();
+ */
+
+
 private:
     QApplication *_app;
 //    Toolbar *_toolbar;
diff --git a/experiments/editorFramework/src/Layer1_toolkit/toolkit.hpp b/experiments/editorFramework/src/Toolkit_Layer_1/toolkit.hpp
similarity index 78%
rename from experiments/editorFramework/src/Layer1_toolkit/toolkit.hpp
rename to experiments/editorFramework/src/Toolkit_Layer_1/toolkit.hpp
index 507ffc0..374c743 100644
--- a/experiments/editorFramework/src/Layer1_toolkit/toolkit.hpp
+++ b/experiments/editorFramework/src/Toolkit_Layer_1/toolkit.hpp
@@ -14,11 +14,12 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-
 #pragma once
 
+
+
 /*
- * Interface between implementation dependent toolkit and the rest of corinthia.
+ * Interface between implementation dependent toolkit and the API available for the handling.
  *
  * This file describes the smallest possible interface, in order to facilitate easier
  * implementation of other toolkits.
@@ -40,12 +41,11 @@
  * Some of the TK implementations might have a license incompatible with a Apache release, as a consequence the toolkit class
  * makes a complete seperation between the apache world, and the potential non-apache world.
  *
- * The interface consist of 2 classes (each singletons)
- * the toolkit class is instanciated in Layer1 (in the individual implementations) and called from generic Layer1 to
- * activate actions.
+ * The interface consist of 2 classes
+ * the toolkit class is instanciated in the implementation part of Layer1 and called from generic Layer1 to activate actions.
  *
- * The toolkit_callback class is instanciated in the generic Layer1 and called from the toolkit implementation to pass results
- * back to the generic layer
+ * The toolkit_callback class is instanciated in the generic part of Layer1 and called from the toolkit implementation to pass
+ * results back to the generic layer
  */
 
 
@@ -53,6 +53,9 @@
 class toolkit_callback {
     /* Callback interface
      *
+     * this class is pure virtual, to make sure it gets implemented in generic layer without any dependencies
+     * from the toolkit implementation layer.
+     *
      * Callbacks are always invoked *after* the execution of a particular editor library API function,
      * not during. The reason for this design design in the library was to enable support for web view
      * classes that did not provide native support for callbacks (as was the case for iOS, at least at
@@ -66,20 +69,23 @@
      */
 
 public:
-    // class is a singleton, so the destructor will only be called when terminating the application
-    ~toolkit_callback() {}
-
     // Request a debug message to be passed to the log system 
     // level can have values as defined in the toolkit class
-    void debug(int level, const char *message);
+    virtual void debug(int level, const char *message) = 0;
+
+
 
     // pass back Javascript result
-    void notifyJavascript(const char *message);
+    virtual void notifyJavascript(const char *message) = 0;
+
+
 
     // pass back Button action
     // button can have values as defined in toolkit class
     // (note windows actions are handled as special buttons)
-    void notifyButtonPressed(int button);
+    virtual void notifyButtonPressed(int button) = 0;
+
+
 
     // pass back Dialogbox action
     // dialog can have values as defined in toolkit class
@@ -101,7 +107,7 @@
     */
 
 public:
-    // Create instance
+    // Enumeration for DEBUG level
     static const enum {
         DEBUG_NONE,
         DEBUG_INFO,
@@ -109,15 +115,25 @@
         DEBUG_DEBUG,
         DEBUG_ERROR
     };
-    static toolkit *createInstance(toolkit_callback *callback, int debugLevel);
+
+
+
+    // Function to create a new instance, this is needed to allow the implementation class
+    // to have a derived class that contain implementation dependent functions and variables
+    static toolkit *createInstance(toolkit_callback *callback, int setDebugLevel);
+
+
 
     // Start windows etc
     virtual bool startWindow() = 0;
 
-    // Start message loop
+
+
+    // Start message loop, does not return, unless main window is terminated
     virtual void run() = 0;
 
+
+
     // Start Javascript
     virtual bool callJavascript(const char *function) = 0;
 };
-
diff --git a/experiments/editorFramework/src/Layer1_toolkit/web/README b/experiments/editorFramework/src/Toolkit_Layer_1/web/README
similarity index 100%
rename from experiments/editorFramework/src/Layer1_toolkit/web/README
rename to experiments/editorFramework/src/Toolkit_Layer_1/web/README