diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java b/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java
index 52639e22ea66442c5e3a62b8fc3a90aef68893fa..03232d79cdc2f2fde8e049114bfc7d00d6b0a725 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java
@@ -5,6 +5,7 @@
  */
 package cz.fidentis.analyst.gui;
 
+import cz.fidentis.analyst.gui.tab.SingleFaceTab;
 import org.netbeans.api.settings.ConvertAsProperties;
 import org.openide.awt.ActionID;
 import org.openide.awt.ActionReference;
@@ -13,8 +14,7 @@ import org.openide.util.NbBundle.Messages;
 import cz.fidentis.analyst.Project;
 import cz.fidentis.analyst.face.HumanFace;
 import cz.fidentis.analyst.mesh.io.ModelFileFilter;
-import cz.fidentis.analyst.newgui.scene.Drawable;
-import cz.fidentis.analyst.newgui.SingleFaceTab;
+import cz.fidentis.analyst.gui.scene.DrawableMesh;
 import java.awt.Dimension;
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -369,7 +369,7 @@ public final class ProjectTopComp extends TopComponent {
     private void createSingleFaceTab(HumanFace face, String name) {
         SingleFaceTab newTab = new SingleFaceTab();
         newTab.setName(name);
-        newTab.getCanvas().getScene().addDrawale(new Drawable(face.getMeshModel()));
+        newTab.getCanvas().initScene(face);
         this.singleFaceTabs.put(face, newTab);
         newTab.open();
         newTab.requestActive();
diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/Canvas.form b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.form
similarity index 100%
rename from GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/Canvas.form
rename to GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.form
diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/Canvas.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java
similarity index 90%
rename from GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/Canvas.java
rename to GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java
index 2359b298b522248f39401bc0129f36e6cd954c18..81ce86d712057ffc40470216b5f060beefeff859 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/Canvas.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java
@@ -1,9 +1,12 @@
-package cz.fidentis.analyst.newgui.canvas;
+package cz.fidentis.analyst.gui.canvas;
 
 import com.jogamp.opengl.GLCapabilities;
 import com.jogamp.opengl.GLProfile;
 import com.jogamp.opengl.awt.GLCanvas;
-import cz.fidentis.analyst.newgui.scene.Scene;
+import cz.fidentis.analyst.face.HumanFace;
+import cz.fidentis.analyst.gui.scene.Camera;
+import cz.fidentis.analyst.gui.scene.Scene;
+import cz.fidentis.analyst.gui.scene.SceneRenderer;
 
 import java.awt.Color;
 import java.awt.Cursor;
@@ -17,11 +20,16 @@ import java.awt.Cursor;
 public class Canvas extends javax.swing.JPanel {
     
     private final GLCanvas glCanvas;
-    private final Scene scene;
+    private final SceneRenderer sceneRenderer;
+    private final Camera camera = new Camera();
+    private Scene scene;
+    
+    // Listeners:
     private final CanvasListener listener;
     private final MouseRotationListener manipulator;
     private final RotationAnimator animator;
     
+    
     /**
      * Constructor.
      */
@@ -42,9 +50,9 @@ public class Canvas extends javax.swing.JPanel {
         glCanvas.requestFocusInWindow();        
         glCanvas.setSize(getWidth() - getInsets().left - getInsets().right, getHeight() - getInsets().top - getInsets().bottom);
        
-        scene = new Scene();
+        sceneRenderer = new SceneRenderer();
         
-        animator = new RotationAnimator(this);
+        animator = new RotationAnimator(this.glCanvas, this.camera);
         
         listener = new CanvasListener(this);
         glCanvas.addGLEventListener(listener);
@@ -56,23 +64,75 @@ public class Canvas extends javax.swing.JPanel {
         
         this.validate();   
     }
+    
+    /**
+     * Initializes the scene for a single face. Can be called only once.
+     * 
+     * @param face Human face
+     * @throws UnsupportedOperationException the the scene is already initiated
+     * @throws IllegalArgumentException if the face is missing
+     */
+    public void initScene(HumanFace face) {
+        if (scene != null) {
+            throw new UnsupportedOperationException("Scene already exists");
+        }
+        this.scene = new Scene(face);
+    }
+    
+    /**
+     * Initializes the scene for the 1:1 comparison. Can be called only once.
+     * 
+     * @param face Human face
+     * @throws UnsupportedOperationException the the scene is already initiated
+     * @throws IllegalArgumentException if some face is missing
+     */
+    public void initScene(HumanFace primary, HumanFace secondary) {
+        if (scene != null) {
+            throw new UnsupportedOperationException("Scene already exists");
+        }
+        this.scene = new Scene(primary, secondary);
+    }
    
     /**
      * Returns the scene
      * @return the scene
      */
+    public SceneRenderer getSceneRenderer() {
+        return sceneRenderer;
+    }
+    
+    public void renderScene() {
+        glCanvas.display();
+    }
+    
+    /**
+     * Returns the scene. 
+     * 
+     * @return the scene.
+     */
     public Scene getScene() {
         return scene;
     }
     
+    /**
+     * Returns camera. 
+     * 
+     * @return camera
+     */
+    public Camera getCamera() {
+        return camera;
+    }
+    
     /**
      * Returns the underlying OpenGL canvas.
      * 
      * @return the underlying OpenGL canvas.
      */
+    /*
     public GLCanvas getGLCanvas() {
         return this.glCanvas;
     }
+    */
     
     /**
      * Changing the size of glCanvas
@@ -353,8 +413,8 @@ public class Canvas extends javax.swing.JPanel {
     }//GEN-LAST:event_rightNavigationButton1MouseReleased
 
     private void resetButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_resetButtonMouseClicked
-        scene.getCamera().initLocation();
-        glCanvas.display();
+        camera.initLocation();
+        renderScene();
     }//GEN-LAST:event_resetButtonMouseClicked
 
     private void resetButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_resetButtonMouseMoved
@@ -367,15 +427,15 @@ public class Canvas extends javax.swing.JPanel {
     }//GEN-LAST:event_resetButtonMouseExited
 
     private void whiteBackroundButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_whiteBackroundButtonMouseClicked
-        scene.setBrightBackground();
-        scene.renderScene();
+        sceneRenderer.setBrightBackground();
+        renderScene();
         whiteBackroundButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/whiteBackroundCanvasPressed.png")));
         blackBackroundButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/blackBackroundCanvas.png")));
     }//GEN-LAST:event_whiteBackroundButtonMouseClicked
 
     private void blackBackroundButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_blackBackroundButtonMouseClicked
-        scene.setDarkBackground();
-        scene.renderScene();
+        sceneRenderer.setDarkBackground();
+        renderScene();
         whiteBackroundButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/whiteBackroundCanvas.png")));
         blackBackroundButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/blackBackroundCanvasPressed.png")));
     }//GEN-LAST:event_blackBackroundButtonMouseClicked
diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/CanvasListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/CanvasListener.java
similarity index 75%
rename from GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/CanvasListener.java
rename to GUI/src/main/java/cz/fidentis/analyst/gui/canvas/CanvasListener.java
index 3137754a29af3667d1e9b2fb712c46a3b5af4358..d8fbc1c9236e321ea829072988895a53fda7e7ca 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/CanvasListener.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/CanvasListener.java
@@ -1,10 +1,10 @@
-package cz.fidentis.analyst.newgui.canvas;
+package cz.fidentis.analyst.gui.canvas;
 
 import com.jogamp.opengl.GLAutoDrawable;
 import com.jogamp.opengl.GLEventListener;
 
 /**
- * Listener invoked when the OpenGL canvas initiated, shown, or resized.
+ * Listener invoked when the OpenGL canvas is initiated, shown, or resized.
  * 
  * @author Radek Oslejsek
  */
@@ -28,7 +28,7 @@ public class CanvasListener implements GLEventListener {
     @Override
     public void init(GLAutoDrawable glad) {
         //System.out.println("CanvasListener.init");
-        canvas.getScene().initSceneGLContext(glad.getGL().getGL2());
+        canvas.getSceneRenderer().initGLContext(glad.getGL().getGL2());
     }
 
     @Override
@@ -39,13 +39,13 @@ public class CanvasListener implements GLEventListener {
     @Override
     public void display(GLAutoDrawable glad) {
         //System.out.println("CanvasListener.display " + this.toString());
-        canvas.getScene().renderScene();
+        canvas.getSceneRenderer().renderScene(canvas.getCamera(), canvas.getScene().getDrawables());
     }
 
     @Override
     public void reshape(GLAutoDrawable glad, int x, int y, int width, int height) {
         //System.out.println("CanvasListener.reshape");
-        canvas.getScene().setViewport(x, y, width, height);
+        canvas.getSceneRenderer().setViewport(x, y, width, height);
     }
     
 }
diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/MouseRotationListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java
similarity index 80%
rename from GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/MouseRotationListener.java
rename to GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java
index 2bb4b237fafe9725092ec7e3905fae8901d03c24..162bd0d981b6171c1100e40be9308fb96e2abc58 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/MouseRotationListener.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java
@@ -1,4 +1,4 @@
-package cz.fidentis.analyst.newgui.canvas;
+package cz.fidentis.analyst.gui.canvas;
 
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
@@ -51,19 +51,19 @@ public class MouseRotationListener extends MouseAdapter {
             } else if (Math.abs(rotateY) < Math.abs(rotateX)) {
                 rotateY = 0;
             }
-            canvas.getScene().getCamera().rotate(rotateX, rotateY);
+            canvas.getCamera().rotate(rotateX, rotateY);
         }
         if (SwingUtilities.isRightMouseButton(evt)) {
             double moveX = -(lastX - evt.getX()) * moveSpeed;
             double moveY = -(lastY - evt.getY()) * moveSpeed;
-            canvas.getScene().getCamera().move(moveX, moveY);
+            canvas.getCamera().move(moveX, moveY);
         }
         if (SwingUtilities.isMiddleMouseButton(evt)) {
-            canvas.getScene().getCamera().initLocation();
+            canvas.getCamera().initLocation();
         }
         lastX = evt.getX();
         lastY = evt.getY();
-        canvas.getGLCanvas().display();
+        canvas.renderScene();
     }
 
     /**
@@ -81,11 +81,11 @@ public class MouseRotationListener extends MouseAdapter {
     @Override
     public void mouseWheelMoved(MouseWheelEvent evt) {
         if (evt.getWheelRotation() > 0) {
-            canvas.getScene().getCamera().zoomIn(-5 * evt.getWheelRotation());
+            canvas.getCamera().zoomIn(-5 * evt.getWheelRotation());
         } else {
-            canvas.getScene().getCamera().zoomOut(5 * evt.getWheelRotation());
+            canvas.getCamera().zoomOut(5 * evt.getWheelRotation());
         }
-        canvas.getGLCanvas().display();
+        canvas.renderScene();
     }
     
     /**
@@ -94,8 +94,8 @@ public class MouseRotationListener extends MouseAdapter {
     @Override
     public void mouseClicked(MouseEvent evt) {
         if (SwingUtilities.isMiddleMouseButton(evt)) {
-            canvas.getScene().getCamera().initLocation();
-            canvas.getGLCanvas().display();
+            canvas.getCamera().initLocation();
+            canvas.renderScene();
         }
     }
     
diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/RotationAnimator.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java
similarity index 88%
rename from GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/RotationAnimator.java
rename to GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java
index bb35f1fb145acacf35c5cd3c93f4e48a290d5952..59a26240dee7168ac92d46d54cf0f041695e29dd 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/RotationAnimator.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java
@@ -1,7 +1,8 @@
-package cz.fidentis.analyst.newgui.canvas;
+package cz.fidentis.analyst.gui.canvas;
 
+import com.jogamp.opengl.awt.GLCanvas;
 import com.jogamp.opengl.util.FPSAnimator;
-import cz.fidentis.analyst.newgui.scene.Camera;
+import cz.fidentis.analyst.gui.scene.Camera;
 import java.util.Timer;
 import java.util.TimerTask;
 
@@ -28,6 +29,7 @@ public class RotationAnimator {
     }
     
     private final Camera camera;
+        
     
     /**
      * Frequency of the rotation or zoom animations
@@ -55,12 +57,15 @@ public class RotationAnimator {
      * @param camera Camera
      * @throws IllegalArgumentException if some argument is missing
      */
-    public RotationAnimator(Canvas canvas) {
-        if (canvas == null) {
-            throw new IllegalArgumentException("canvas is null");
+    public RotationAnimator(GLCanvas glCanvas, Camera camera) {
+        if (glCanvas == null) {
+            throw new IllegalArgumentException("glCanvas is null");
+        }
+        if (camera == null) {
+            throw new IllegalArgumentException("camera is null");
         }
-        this.camera = canvas.getScene().getCamera();
-        this.animator = new FPSAnimator(canvas.getGLCanvas(), FPS, true);
+        this.camera = camera;
+        this.animator = new FPSAnimator(glCanvas, FPS, true);
     }
     
     /**
diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Camera.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/Camera.java
similarity index 99%
rename from GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Camera.java
rename to GUI/src/main/java/cz/fidentis/analyst/gui/scene/Camera.java
index ad1c8c59e663841b66691a7fd67228cf57b8f383..782da9040d3fd8a0fb276aaf4cee0e4f00d917fe 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Camera.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/Camera.java
@@ -1,4 +1,4 @@
-package cz.fidentis.analyst.newgui.scene;
+package cz.fidentis.analyst.gui.scene;
 
 import javax.vecmath.Vector3d;
 
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java
new file mode 100644
index 0000000000000000000000000000000000000000..82ee9db24d6e7ef5225cf62368aee9d17f1b3c04
--- /dev/null
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java
@@ -0,0 +1,65 @@
+package cz.fidentis.analyst.gui.scene;
+
+import cz.fidentis.analyst.mesh.core.MeshFacet;
+import cz.fidentis.analyst.mesh.core.MeshModel;
+import java.util.List;
+
+/**
+ * A drawable triangular mesh, i.e., a mesh model with drawing information like 
+ * material, transparency, color, relative transformations in the scene etc. 
+ * This class encapsulates rendering state and parameters,
+ * 
+ * @author Radek Oslejsek
+ */
+public class DrawableMesh {
+    
+    private final MeshModel model;
+    
+    private boolean display = true;
+    
+    // TO DO - R. Pajersky: add transformation attributes and methods
+    
+    /**
+     * Constructor. 
+     * 
+     * @param model Drawable mesh model
+     * @throws IllegalArgumentException if the model is {@code null}
+     */
+    public DrawableMesh(MeshModel model) {
+        if (model == null) {
+            throw new IllegalArgumentException("model is null");
+        }
+        this.model = model;
+    }
+    
+    /**
+     * Returns list of individual facets.
+     * 
+     * @return list of individual facets.
+     */
+    public List<MeshFacet> getFacets() {
+        return model.getFacets();
+    }
+    
+    /**
+     * This drawable mesh is included in the rendered scene.
+     */
+    public void show() {
+        display = true;
+    }
+    
+    /**
+     * This drawable mesh is excluded from the rendered scene (skipped).
+     */
+    public void hide() {
+        display = false;
+    }
+    
+    /**
+     * 
+     * @return {@code true} if the object is included (rendered) in the scene.
+     */
+    public boolean isShown() {
+        return display;
+    }
+}
diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/Scene.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/Scene.java
new file mode 100644
index 0000000000000000000000000000000000000000..0dd610263992e6b0a42292246d252ebf7b36dd41
--- /dev/null
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/Scene.java
@@ -0,0 +1,69 @@
+package cz.fidentis.analyst.gui.scene;
+
+import cz.fidentis.analyst.face.HumanFace;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Abstract class for ...
+ * 
+ * @author Radek Oslejsek
+ */
+public class Scene {
+    
+    private final HumanFace primaryFace;
+    
+    private final HumanFace secondaryFace ;
+    
+    private final List<DrawableMesh> drawables=  new ArrayList<>();
+    
+    /**
+     * Constructor for single face analysis.
+     * 
+     * @param face Human face to be analyzed
+     * @throws IllegalArgumentException if the {@code face} is {@code null}
+     */
+    public Scene(HumanFace face) {
+        if (face == null) {
+            throw new IllegalArgumentException("face");
+        }
+        this.primaryFace = face;
+        this.secondaryFace = null;
+        
+        drawables.add(new DrawableMesh(primaryFace.getMeshModel()));
+    }
+    
+    /**
+     * Constructor for one-to-one analysis.
+     * 
+     * @param primary Primary face to be analyzed
+     * @param primary Secondary face to be analyzed
+     * @throws IllegalArgumentException if some face is {@code null}
+     */
+    public Scene(HumanFace primary, HumanFace secondary) {
+        if (primary == null) {
+            throw new IllegalArgumentException("primary");
+        }
+        if (secondary == null) {
+            throw new IllegalArgumentException("secondary");
+        }
+        this.primaryFace = primary;
+        this.secondaryFace = secondary;
+        
+        drawables.add(new DrawableMesh(primaryFace.getMeshModel()));
+        drawables.add(new DrawableMesh(secondaryFace.getMeshModel()));
+    }
+    
+    /**
+     * Returns all drawable objects in a modifiable collection (should be refactored in the future).
+     * 
+     * @return all drawable objects 
+     */
+    public Collection<DrawableMesh> getDrawables() {
+        return this.drawables;
+    }
+}
diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Scene.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java
similarity index 85%
rename from GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Scene.java
rename to GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java
index 63f10e2ab1cd6fa2da28af06f4d919a655b7860a..cda999208c6311f269071aea9dc2b7304cb13c64 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Scene.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java
@@ -1,4 +1,4 @@
-package cz.fidentis.analyst.newgui.scene;
+package cz.fidentis.analyst.gui.scene;
 
 import com.jogamp.opengl.GL;
 import static com.jogamp.opengl.GL.GL_DEPTH_TEST;
@@ -9,22 +9,22 @@ import static com.jogamp.opengl.GL2GL3.GL_LINE;
 import com.jogamp.opengl.glu.GLU;
 import cz.fidentis.analyst.mesh.core.MeshFacet;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 import javax.vecmath.Point3d;
+import javax.vecmath.Point4f;
 import javax.vecmath.Vector3d;
-import javax.vecmath.Vector4f;
 
 /**
- * An object responsible for handling {@link Drawable}s included in the scene 
- * (in the OpenGL context of the OpenGL canvas) and their rendering.
+ * Handles {@link DrawableMesh}s - objects to be drawn, and (re-)renders them on demand. 
  * 
  * @author Natalia Bebjakova
  * @author Radek Oslejsek
  */
-public class Scene {
+public class SceneRenderer {
 
-    private static final Vector4f BRIGHT_BACKGROUND = new Vector4f(0.9f, 0.9f, 0.9f, 0);
-    private static final Vector4f DARK_BACKGROUND = new Vector4f(0.25f, 0.25f, 0.25f, 0);
+    private static final Point4f BRIGHT_BACKGROUND = new Point4f(0.9f, 0.9f, 0.9f, 0);
+    private static final Point4f DARK_BACKGROUND = new Point4f(0.25f, 0.25f, 0.25f, 0);
     
     private final GLU glu = new GLU();
     private GL2 gl;
@@ -32,28 +32,13 @@ public class Scene {
     private boolean brightBackground = false;
     private boolean wireframe = false;
     
-    private List<Drawable> drawables = new ArrayList<>();
-    
-    private final Camera camera = new Camera();
-    
-    /**
-     * Adds a drawable object into the scene.
-     * 
-     * @param dr Drawable object
-     */
-    public void addDrawale(Drawable dr) {
-        if (dr != null) {
-            drawables.add(dr);
-        }
-    }
-    
     /**
      * Constructor.
      * 
      * @param gl OpenGL context of drawable objects
      * @throws IllegalArgumentException if the {@code gl} is null
      */
-    public void initSceneGLContext(GL2 gl) {
+    public void initGLContext(GL2 gl) {
         if (gl == null) {
             throw new IllegalArgumentException("gl is null");
         }
@@ -120,7 +105,7 @@ public class Scene {
     /**
      * Renders drawable objects.
      */
-    public void renderScene() {
+    public void renderScene(Camera camera, Collection<DrawableMesh> drawables) {
         clearScene();
         
         // sets model to proper position
@@ -142,8 +127,9 @@ public class Scene {
             gl.glPolygonMode( GL_FRONT_AND_BACK, GL_FILL);
         }
         
-        for (Drawable obj: drawables) {
+        for (DrawableMesh obj: drawables) {
             for (MeshFacet facet: obj.getFacets()) {
+                // TO DO - R. Pajersky: add transformation (glPushMatrix, glRotate, ...)
                 renderFacet(facet);
             }
         }
@@ -151,10 +137,6 @@ public class Scene {
          gl.glFlush();
     }
     
-    public Camera getCamera() {
-        return camera;
-    }
-    
     /**
      * Clears the scene and prepares it for the re-drawing.
      */
diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.form b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.form
similarity index 97%
rename from GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.form
rename to GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.form
index 93a6b9326e1280b591d38d8795f4ef272a3ce359..cebe2c58f760e41ebae4086d6afc2f22201b7e1e 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.form
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.form
@@ -52,7 +52,7 @@
     </DimensionLayout>
   </Layout>
   <SubComponents>
-    <Component class="cz.fidentis.analyst.newgui.canvas.Canvas" name="canvas1">
+    <Component class="cz.fidentis.analyst.gui.canvas.Canvas" name="canvas1">
     </Component>
     <Container class="javax.swing.JToolBar" name="jToolBar1">
       <Properties>
diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.java b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.java
similarity index 93%
rename from GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.java
rename to GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.java
index ccac31a0c1878bfe98a5b0d868284e38f6d9ef5e..60e82105374ed069fdcaf4b5a0d33ac2bc84ca6d 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.java
@@ -1,6 +1,6 @@
-package cz.fidentis.analyst.newgui;
+package cz.fidentis.analyst.gui.tab;
 
-import cz.fidentis.analyst.newgui.canvas.Canvas;
+import cz.fidentis.analyst.gui.canvas.Canvas;
 import org.netbeans.api.settings.ConvertAsProperties;
 import org.openide.windows.TopComponent;
 
@@ -12,7 +12,7 @@ import org.openide.windows.TopComponent;
  * @author Richard Pajersky
  */
 @ConvertAsProperties(
-        dtd = "-//cz.fidentis.analyst.gui//SingleFaceTab//EN",
+        dtd = "-//cz.fidentis.analyst.gui.tab//SingleFaceTab//EN",
         autostore = false
 )
 public final class SingleFaceTab extends TopComponent {
@@ -37,7 +37,7 @@ public final class SingleFaceTab extends TopComponent {
     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
     private void initComponents() {
 
-        canvas1 = new cz.fidentis.analyst.newgui.canvas.Canvas();
+        canvas1 = new cz.fidentis.analyst.gui.canvas.Canvas();
         jToolBar1 = new javax.swing.JToolBar();
         jButton1 = new javax.swing.JButton();
 
@@ -67,7 +67,7 @@ public final class SingleFaceTab extends TopComponent {
     }// </editor-fold>//GEN-END:initComponents
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
-    private cz.fidentis.analyst.newgui.canvas.Canvas canvas1;
+    private cz.fidentis.analyst.gui.canvas.Canvas canvas1;
     private javax.swing.JButton jButton1;
     private javax.swing.JToolBar jToolBar1;
     // End of variables declaration//GEN-END:variables
diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Drawable.java b/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Drawable.java
deleted file mode 100644
index 693619e1cc85cafe4601b44330e24d6e6bf5f508..0000000000000000000000000000000000000000
--- a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Drawable.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package cz.fidentis.analyst.newgui.scene;
-
-import cz.fidentis.analyst.mesh.core.MeshFacet;
-import cz.fidentis.analyst.mesh.core.MeshModel;
-import java.util.List;
-
-/**
- * A drawable object, i.e., a mesh model with drawing information like 
- * material, transparency, color, etc. The objects draws itself via provided scene renderer.
- * 
- * @author Radek Oslejsek
- */
-public class Drawable {
-    
-    private final MeshModel model;
-    
-    /**
-     * Constructor. 
-     * 
-     * @param model Drawable mesh model
-     * @throws IllegalArgumentException if the model is {@code null}
-     */
-    public Drawable(MeshModel model) {
-        if (model == null) {
-            throw new IllegalArgumentException("model is null");
-        }
-        this.model = model;
-    }
-    
-    /**
-     * Returns list of individual facets.
-     * 
-     * @return list of individual facets.
-     */
-    public List<MeshFacet> getFacets() {
-        return model.getFacets();
-    }
-}
diff --git a/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties b/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties
new file mode 100644
index 0000000000000000000000000000000000000000..3b4ce9f121b8633cb7cf8321818cc146ce77b8ad
--- /dev/null
+++ b/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties
@@ -0,0 +1,2 @@
+
+SingleFaceTab.jButton1.text=