diff --git a/src/main/java/complexityparser/Model.java b/src/main/java/complexityparser/Model.java
index fdf46f8817bd62d08ee94d30bf49c0c5dda12c65..305e323e74cb580f84da24865902d7e32d3c42c4 100644
--- a/src/main/java/complexityparser/Model.java
+++ b/src/main/java/complexityparser/Model.java
@@ -22,12 +22,7 @@ public class Model extends Observable {
     public Model() {
         code = "class MainClass {public static void main(String[] arg) {System.out.println(\"Hello World\");int i = 0;}}";
 
-        CharStream input = CharStreams.fromString(code);
-
-        lexer = new Java8Lexer(input);
-        token = new CommonTokenStream(lexer);
-        parser = new Java8Parser(token);
-        context = parser.compilationUnit();
+        setCode(code);
     }
 
     public TreeViewer getTreeComponent() {
@@ -38,4 +33,17 @@ public class Model extends Observable {
 
         return viewer;
     }
+
+    public void setCode(String code) {
+        this.code = code;
+
+        CharStream input = CharStreams.fromString(code);
+
+        lexer = new Java8Lexer(input);
+        token = new CommonTokenStream(lexer);
+        parser = new Java8Parser(token);
+        context = parser.compilationUnit();
+
+        update();
+    }
 }
diff --git a/src/main/java/view/EditorView.java b/src/main/java/view/EditorView.java
new file mode 100644
index 0000000000000000000000000000000000000000..9e32adf0676065eb6c94400a5f3ed5db51f5385a
--- /dev/null
+++ b/src/main/java/view/EditorView.java
@@ -0,0 +1,42 @@
+package view;
+
+import complexityparser.Model;
+
+import javax.swing.*;
+import java.awt.*;
+
+public class EditorView extends JPanel {
+
+    private JScrollPane panel;
+    private JTextArea area;
+    private JButton updateButton;
+
+    private Model m;
+
+    public EditorView(Model m) {
+        this.m = m;
+        area = new JTextArea();
+
+        area.setCaretColor(Color.WHITE);
+        area.getCaret().setBlinkRate(0);
+        area.setTabSize(3);
+        area.setFont(new Font("monospaced", Font.PLAIN, 12));
+
+        panel = new JScrollPane(area);
+
+        updateButton = new JButton("update");
+        updateButton.addActionListener((e) -> {
+            String code = area.getText();
+            m.setCode(code);
+        });
+
+        BorderLayout layout = new BorderLayout();
+        setLayout(layout);
+
+        add(panel, BorderLayout.CENTER);
+        add(updateButton, BorderLayout.SOUTH);
+
+
+        setPreferredSize(new Dimension(600, 600));
+    }
+}
diff --git a/src/main/java/view/MainFrame.java b/src/main/java/view/MainFrame.java
index 1f9ce3305ef43eb347406fd88b9c51051c123370..c9f6e01bb1bbd37be1f430cafc239ce731fa3dfe 100644
--- a/src/main/java/view/MainFrame.java
+++ b/src/main/java/view/MainFrame.java
@@ -3,6 +3,7 @@ package view;
 import complexityparser.Model;
 
 import javax.swing.*;
+import java.awt.*;
 
 public class MainFrame extends JFrame {
     public MainFrame(Model m) {
@@ -11,7 +12,12 @@ public class MainFrame extends JFrame {
         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 
         setTitle("ComplexityParser");
-        add(new TreePanel(m));
+
+        BorderLayout layout = new BorderLayout();
+        setLayout(layout);
+
+        add(new EditorView(m), BorderLayout.WEST);
+        add(new TreePanel(m), BorderLayout.CENTER);
 
         pack();
         //setSize(600,600);