diff --git a/crazyflie_ws/sandbox/crazypkg/gui/untitled/main.o b/crazyflie_ws/sandbox/crazypkg/gui/untitled/main.o
index 0a3ad2ccf7d8622d495ea71699a78307060cf097..d56bff813452ec9a4a8adac250fb2d4a805efadb 100644
Binary files a/crazyflie_ws/sandbox/crazypkg/gui/untitled/main.o and b/crazyflie_ws/sandbox/crazypkg/gui/untitled/main.o differ
diff --git a/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.cpp b/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.cpp
index 4ae469dc9d380187a9f9853106c81ab9c986d3d6..8e1a78e40cca35efcf2af0b6d8af6b69add906a5 100644
--- a/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.cpp
+++ b/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.cpp
@@ -55,12 +55,15 @@ void MainGUIWindow::_refresh_tabs()
 void MainGUIWindow::_init()
 {
 
-    scene = new myGraphicsScene(this);
+    scene = new myGraphicsScene(ui->frame_drawing);
+    //scene->setSceneRect(QRectF(QPointF(-100, 100), QSizeF(200, 200)));
 
     ui->graphicsView->setScene(scene);
-    QRect rect(10, 20, 80, 60);
+    item1 = new QGraphicsRectItem(0,0,100,100);
+    item1->setBrush(QBrush(Qt::blue));
     scene->addText("Hello world!");
-    scene->addRect(rect, QPen(Qt::black), QBrush(Qt::blue));
+    // scene->addRect(rect, QPen(Qt::black), QBrush(Qt::blue));
+    scene->addItem(item1);
 
     ui->spinBoxNumCrazyflies->setMaximum(N_MAX_CRAZYFLIES);
     _refresh_tabs();
diff --git a/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.h b/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.h
index 06e12488ea49607a3a96959f54018df6d8b00218..66f50d3fbbecce9bf295a290a8654b26a146ad89 100644
--- a/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.h
+++ b/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.h
@@ -6,6 +6,7 @@
 #include <QMainWindow>
 #include <QTimer>
 #include <QGridLayout>
+#include <QGraphicsRectItem>
 
 #ifndef DEBUG_GUI
 #include "ros/callback_queue.h"
@@ -137,7 +138,7 @@ private:
 
     Ui::MainGUIWindow *ui;
     myGraphicsScene* scene;      //TODO: make a subclass from QGraphicScene class, mouse events
-
+    QGraphicsRectItem* item1;
 
     void _init();
     void _refresh_tabs();
diff --git a/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.o b/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.o
index 5842b899542a3775b789b2c120dad92f85ad3f85..f86ddb14309472888a62c533595bd8b9bac9b511 100644
Binary files a/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.o and b/crazyflie_ws/sandbox/crazypkg/gui/untitled/mainguiwindow.o differ
diff --git a/crazyflie_ws/sandbox/crazypkg/gui/untitled/moc_mainguiwindow.o b/crazyflie_ws/sandbox/crazypkg/gui/untitled/moc_mainguiwindow.o
index fcaa169895bc162359958b332d835fff7ad863f7..f1e4a3a9a35e7e7adcaaa17ab1662178cf55dd52 100644
Binary files a/crazyflie_ws/sandbox/crazypkg/gui/untitled/moc_mainguiwindow.o and b/crazyflie_ws/sandbox/crazypkg/gui/untitled/moc_mainguiwindow.o differ
diff --git a/crazyflie_ws/sandbox/crazypkg/gui/untitled/moc_myGraphicsScene.o b/crazyflie_ws/sandbox/crazypkg/gui/untitled/moc_myGraphicsScene.o
index 10a7b46eedaac352de220e5ff84174cb6256dd81..615fa7590c5f056cc8a639b7a6ef129d851066a0 100644
Binary files a/crazyflie_ws/sandbox/crazypkg/gui/untitled/moc_myGraphicsScene.o and b/crazyflie_ws/sandbox/crazypkg/gui/untitled/moc_myGraphicsScene.o differ
diff --git a/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.cpp b/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.cpp
index cff4d244c56cbce54cd0fff9e5102e45f7e6d53f..5d9266a04a2bd08330c70875530b75386e754909 100644
--- a/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.cpp
+++ b/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.cpp
@@ -2,15 +2,17 @@
 
 #include <QGraphicsSceneMouseEvent>
 #include <QRect>
+#include <QGraphicsRectItem>
 
 myGraphicsScene::myGraphicsScene(QObject *parent)
     : QGraphicsScene(parent)
 {
     pen = new QPen(Qt::black);
     brush = new QBrush(Qt::blue);
-    rect = 0;
-    // startedRect = false;
-    firstClick = true;
+
+    tmp_rect = 0;
+    startedRect = false;
+    // firstClick = true;
 }
 
 
@@ -20,33 +22,43 @@ void myGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
         return;
 
 
-    // rect = new QRect((mouseEvent->scenePos()).toPoint(), (mouseEvent->scenePos()).toPoint());
-    // addRect(*rect, *pen, *brush);
-    // startedRect = true;
+    // Drag and drop approach
 
-    if(firstClick)
-    {
-        p1 = new QPoint((mouseEvent->scenePos()).toPoint());
-        QRect tmp_rect(*p1, *p1);
-        addRect(tmp_rect, *pen, *brush);
-    }
-    else
-    {
-        p2 = new QPoint((mouseEvent->scenePos()).toPoint());
-        QRect tmp_rect(*p2, *p2);
-        addRect(tmp_rect, *pen, *brush);
-    }
+    startedRect = true;
+    p1 = new QPointF(mouseEvent->scenePos());
+    tmp_rect = new QRectF(*p1, *p1);
+    // addRect(*tmp_rect, *pen, *brush);
+    tmp_rect_item = new QGraphicsRectItem(*tmp_rect);
+    rectangles.push_back(tmp_rect_item);
+    addItem(rectangles.back());
+
+    // Two-clicks approach
+    // if(firstClick)
+    // {
+    //     p1 = new QPointF(mouseEvent->scenePos());
+    //     tmp_rect_item = addRect(QRect(p1->toPoint(), p1->toPoint()), *pen, *brush); //save it to remove it after
+    // }
+    // else
+    // {
+    //     p2 = new QPointF(mouseEvent->scenePos());
+    //     // QRect tmp_rect(*p2, *p2);
+    //     // addRect(tmp_rect, *pen, *brush);
+    // }
+
+
+    update();
     QGraphicsScene::mousePressEvent(mouseEvent);
 }
 
 void myGraphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
 {
-    // if(startedRect)
-    // {
-    //     rect->moveBottomRight((mouseEvent->scenePos()).toPoint());
-    //     qDebug("Mouse Position: %d, %d", (mouseEvent->scenePos()).toPoint().x(), (mouseEvent->scenePos()).toPoint().y());
-    //     qDebug("Rectangle BottomRight Position: %d, %d", rect->bottomRight().x(), rect->bottomRight().y());
-    // }
+    if(startedRect)
+    {
+        tmp_rect_item->setRect(QRectF(*p1, mouseEvent->scenePos()));
+        qDebug("Mouse Position: %d, %d", (mouseEvent->scenePos()).toPoint().x(), (mouseEvent->scenePos()).toPoint().y());
+        qDebug("Rectangle BottomRight Position: %d, %d", tmp_rect->bottomRight().x(), tmp_rect->bottomRight().y());
+        update();
+    }
     QGraphicsScene::mouseMoveEvent(mouseEvent);
 }
 
@@ -55,20 +67,33 @@ void myGraphicsScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
 
     if (mouseEvent->button() != Qt::LeftButton)
         return;
-    // rect = 0;
-    // startedRect = false;
-    if(firstClick)
-    {
-        firstClick = false;
-    }
-    else
-    {
-        rect = new QRect(*p1, *p2);
-        addRect(*rect, *pen, *brush);
-        p1 = 0;
-        p2 = 0;
-        rect = 0;
-        firstClick = true;
-    }
+
+    // Drag and drop approach:
+
+    tmp_rect = 0;
+    startedRect = false;
+
+
+    // Two-clicks approach
+
+    // if(firstClick)
+    // {
+    //     firstClick = false;
+    // }
+    // else
+    // {
+    //     removeItem(tmp_rect_item);
+    //     tmp_rect_item = new QGraphicsRectItem(QRectF(*p1, *p2));
+    //     //            *tmp_rect, *pen, *brush);
+    //     rectangles.push_back(tmp_rect_item);
+
+    //     addItem(rectangles.back());
+    //     p1 = 0;
+    //     p2 = 0;
+    //     tmp_rect = 0;
+    //     firstClick = true;
+    // }
+
+    update();
     QGraphicsScene::mouseReleaseEvent(mouseEvent);
 }
diff --git a/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.h b/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.h
index 96c7e3d5c4ca8723a3e9512dacf9e4c1abcbc55a..703c1c0bc556a293c4771458976ace787ddf792b 100644
--- a/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.h
+++ b/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.h
@@ -1,5 +1,7 @@
-#ifndef DIAGRAMSCENE_H
-#define DIAGRAMSCENE_H
+#ifndef MYGRAPHICSSCENE_H
+#define MYGRAPHICSSCENE_H
+
+#include <vector>
 
 #include <QGraphicsScene>
 
@@ -14,6 +16,7 @@ class myGraphicsScene : public QGraphicsScene
 
 public:
     explicit myGraphicsScene(QObject *parent = 0);
+    std::vector<QGraphicsRectItem*> rectangles;
 
 public slots:
 
@@ -27,13 +30,14 @@ protected:
 private:
     QPen* pen;
     QBrush* brush;
-    QRect* rect;
-    QPoint* p1;
-    QPoint* p2;
+    QRectF* tmp_rect;
+    QGraphicsRectItem* tmp_rect_item;
+    QPointF* p1;
+    QPointF* p2;
 
-    bool firstClick;
+    // bool firstClick;
 
-    // bool startedRect;
+    bool startedRect;
 };
 
 #endif
diff --git a/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.o b/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.o
index 7fb1f539f4f9f389b25f804ae5caaa9127a11f81..6c385fa8f522057f3f8e5b50a75a1aa18306a988 100644
Binary files a/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.o and b/crazyflie_ws/sandbox/crazypkg/gui/untitled/myGraphicsScene.o differ
diff --git a/crazyflie_ws/sandbox/crazypkg/gui/untitled/untitled b/crazyflie_ws/sandbox/crazypkg/gui/untitled/untitled
index d537e2520d18e3a42e5b1b0159507ee6e31d47a3..110f9d35e94a3f3cd234afba404fe8f61b4be36f 100755
Binary files a/crazyflie_ws/sandbox/crazypkg/gui/untitled/untitled and b/crazyflie_ws/sandbox/crazypkg/gui/untitled/untitled differ