diff --git a/modules/gui/pymod/export_scene_selection.cc b/modules/gui/pymod/export_scene_selection.cc
index bae499fc5a842284e94f0738d283cf214c8ad36c..239826abaf0f2a2d4e0708274d7415d1dba586bb 100644
--- a/modules/gui/pymod/export_scene_selection.cc
+++ b/modules/gui/pymod/export_scene_selection.cc
@@ -30,7 +30,9 @@ void export_SceneSelection()
   class_<SceneSelection, boost::noncopyable>("SceneSelection",no_init)
     .def("Instance", &SceneSelection::Instance,
      return_value_policy<reference_existing_object>()).staticmethod("Instance")
-    .def("GetActiveNode",&SceneSelection::GetActiveNode)
     .def("GetActiveNodeCount",&SceneSelection::GetActiveNodeCount)
+    .def("GetActiveNode",&SceneSelection::GetActiveNode)
+    .def("GetActiveViewCount", &SceneSelection::GetActiveViewCount)
+    .def("GetActiveView", &SceneSelection::GetActiveView)
     ;
 }
diff --git a/modules/gui/src/scene_selection.cc b/modules/gui/src/scene_selection.cc
index d0ba0039ad7a4710ff7a0e0397e70734927c7e0d..f8aa76bb45623248b19a0e840a1b7060a62e7e12 100644
--- a/modules/gui/src/scene_selection.cc
+++ b/modules/gui/src/scene_selection.cc
@@ -50,7 +50,7 @@ void SceneSelection::SetActiveNodes(gfx::NodePtrList nodes, gfx::EntityP entity,
   views_ = views;
 }
 
-gfx::GfxNodeP SceneSelection::GetActiveNode(unsigned int pos){
+gfx::GfxNodeP SceneSelection::GetActiveNode(unsigned int pos) const{
   if(pos >= 0 && pos < nodes_.size()){
     return nodes_[pos];
   }
@@ -59,14 +59,24 @@ gfx::GfxNodeP SceneSelection::GetActiveNode(unsigned int pos){
   }
 }
 
-int SceneSelection::GetActiveNodeCount(){
+int SceneSelection::GetActiveNodeCount() const{
   return nodes_.size();
 }
 
-int SceneSelection::GetActiveViewCount(){
+int SceneSelection::GetActiveViewCount() const{
   return views_.size();
 }
 
+mol::EntityView SceneSelection::GetActiveView(unsigned int pos) const{
+  if(pos >=0 && pos < views_.size()){
+    return views_[pos].GetEntityView();
+  }
+  else{
+    throw Error("Index out of bounds: There is no active vies at the given position");
+  }
+}
+
+
 SceneSelection* SceneSelection::Instance() {
   if (!SceneSelection::scene_selection_) {
     SceneSelection::scene_selection_=new SceneSelection;
@@ -217,7 +227,7 @@ void SceneSelection::MakeHidden(){
   }
 }
 
-gfx::EntityP SceneSelection::GetViewEntity(){
+gfx::EntityP SceneSelection::GetViewEntity() const{
   return view_entity_;
 }
 
diff --git a/modules/gui/src/scene_selection.hh b/modules/gui/src/scene_selection.hh
index dd89f19f7027026c703cfb9094e4bae32a14b376..079b25a962cff04498310612d4f64cd642a10400 100644
--- a/modules/gui/src/scene_selection.hh
+++ b/modules/gui/src/scene_selection.hh
@@ -35,10 +35,11 @@ class DLLEXPORT_OST_GUI SceneSelection : public QObject {
   Q_OBJECT
 public:
   static SceneSelection* Instance();
-  gfx::GfxNodeP GetActiveNode(unsigned int pos);
-  int GetActiveNodeCount();
-  int GetActiveViewCount();
-  gfx::EntityP GetViewEntity();
+  int GetActiveNodeCount() const;
+  gfx::GfxNodeP GetActiveNode(unsigned int pos) const;
+  int GetActiveViewCount() const;
+  mol::EntityView GetActiveView(unsigned int pos) const;
+  gfx::EntityP GetViewEntity() const;
 
 public slots:
   void CenterOnObjects();
diff --git a/modules/gui/src/scene_win/context_menu.hh b/modules/gui/src/scene_win/context_menu.hh
index 41b38864f44ae319817c60a40f7eb69d8b1a3f97..28a1dab0f54b0cb750613010d147c2ffce9b0d41 100644
--- a/modules/gui/src/scene_win/context_menu.hh
+++ b/modules/gui/src/scene_win/context_menu.hh
@@ -32,14 +32,6 @@
 
 namespace ost { namespace gui {
 
-enum ContextMenuType {
-  GFX_OBJECTS = 1,
-  ENTITIES,
-  ENTITY_VIEWS,
-  MIX
-};
-
-
 class DLLEXPORT_OST_GUI ContextMenu : public QObject {
   Q_OBJECT
 public:
@@ -56,8 +48,6 @@ private slots:
 
 
 private:
-  gui::ContextMenuType GetType();
-
   QTreeView* view_;
   SceneWinModel* model_;
 };
diff --git a/modules/gui/src/scene_win/entity_node.cc b/modules/gui/src/scene_win/entity_node.cc
index 3b10dbbba297927ccceeb51c90268f74b5be25c5..a133a67b24072c738b7bfbc78eed3f127ce07025 100644
--- a/modules/gui/src/scene_win/entity_node.cc
+++ b/modules/gui/src/scene_win/entity_node.cc
@@ -61,7 +61,7 @@ EntityNode::EntityNode(gfx::EntityP& entity, SceneNode* parent):
   model->AddNode(this, node);
 }
 
-SceneNode* EntityNode::GetCustomViewNode(){
+SceneNode* EntityNode::GetCustomViewNode() const{
   return custom_view_;
 }
 
diff --git a/modules/gui/src/scene_win/entity_node.hh b/modules/gui/src/scene_win/entity_node.hh
index fa776f37726282ead07b0fc60877e39dba163357..8b716ec1170ea81577556da46918cb8461164b29 100644
--- a/modules/gui/src/scene_win/entity_node.hh
+++ b/modules/gui/src/scene_win/entity_node.hh
@@ -39,7 +39,7 @@ class DLLEXPORT_OST_GUI EntityNode : public GfxSceneNode {
 public:
   EntityNode(gfx::EntityP& entity, SceneNode* node_parent);
 
-  SceneNode* GetCustomViewNode();
+  SceneNode* GetCustomViewNode() const;
 
 private:
   SceneNode* custom_view_;
diff --git a/modules/gui/src/scene_win/entity_part_node.cc b/modules/gui/src/scene_win/entity_part_node.cc
index cfa59678093e354f499e3fbd8ef7b2c37af7e230..dd56f2484a9a355bed0745c3e9f4524ab652fe10 100644
--- a/modules/gui/src/scene_win/entity_part_node.cc
+++ b/modules/gui/src/scene_win/entity_part_node.cc
@@ -67,7 +67,7 @@ void EntityPartNode::SetVisible(bool visible){
   visible_ = visible;
 }
 
-bool EntityPartNode::GetVisible(){
+bool EntityPartNode::GetVisible() const{
   return visible_;
 }
 
diff --git a/modules/gui/src/scene_win/entity_part_node.hh b/modules/gui/src/scene_win/entity_part_node.hh
index 191350d3465f37a616a62e526728030e205f882a..7f7d3629784aa26e6362011f5f428b03d166ebd7 100644
--- a/modules/gui/src/scene_win/entity_part_node.hh
+++ b/modules/gui/src/scene_win/entity_part_node.hh
@@ -55,7 +55,7 @@ public:
 
 protected:
   virtual void SetVisible(bool visible);
-  virtual bool GetVisible();
+  virtual bool GetVisible() const;
 
 private:
   QString name_;
diff --git a/modules/gui/src/scene_win/render_modes_node.cc b/modules/gui/src/scene_win/render_modes_node.cc
index 02cfae68a3803a0c02c85f942a5af4197be8f046..0e46a1a03ea6ef71b9d8a1f2d352cf0542547071 100644
--- a/modules/gui/src/scene_win/render_modes_node.cc
+++ b/modules/gui/src/scene_win/render_modes_node.cc
@@ -71,7 +71,7 @@ void RenderModesNode::Update(){
 
 }
 
-gfx::GfxNodeP RenderModesNode::GetGfxNode(){
+gfx::GfxNodeP RenderModesNode::GetGfxNode() const{
   return node_;
 }
 
diff --git a/modules/gui/src/scene_win/render_modes_node.hh b/modules/gui/src/scene_win/render_modes_node.hh
index 691f0d094094d2213f5973f7021cc3514f21e12b..231bf41bf62a81fad869aebdfde1063a8fd42740 100644
--- a/modules/gui/src/scene_win/render_modes_node.hh
+++ b/modules/gui/src/scene_win/render_modes_node.hh
@@ -48,7 +48,7 @@ public:
   RenderModesNode(gfx::EntityP entity, SceneNode* node_parent );
 
   virtual void RenderModeChanged();
-  gfx::GfxNodeP GetGfxNode();
+  gfx::GfxNodeP GetGfxNode() const;
 
 private:
   void Update();
diff --git a/modules/gui/src/scene_win/scene_win.cc b/modules/gui/src/scene_win/scene_win.cc
index 8602fb2cc69dfde9ff305e91fe02ef7997f60045..1a8f5c68e1c125ffb2886e2fc4df581c89380015 100644
--- a/modules/gui/src/scene_win/scene_win.cc
+++ b/modules/gui/src/scene_win/scene_win.cc
@@ -91,7 +91,7 @@ void SceneWin::OnSelectionChange(const QItemSelection& sel,
   emit this->ActiveNodesChanged();
 }
 
-SceneWinModel* SceneWin::GetModel(){
+SceneWinModel* SceneWin::GetModel() const{
   return model_;
 }
 
diff --git a/modules/gui/src/scene_win/scene_win.hh b/modules/gui/src/scene_win/scene_win.hh
index 09d9b139c9b16f79cf5b1f5070861fb54f16cc0d..0cdf11540e601f49d5dde33c27a5fbc8f4b64b59 100644
--- a/modules/gui/src/scene_win/scene_win.hh
+++ b/modules/gui/src/scene_win/scene_win.hh
@@ -60,7 +60,7 @@ public slots:
 
   void ContextMenuRequested(const QPoint& pos);
 
-  SceneWinModel* GetModel();
+  SceneWinModel* GetModel() const;
 
   void Update();