diff --git a/.gitsubprojects b/.gitsubprojects
index d15b9a383eb2ce8d04e7617b1054515f0e025af9..0c84b5dc91553384a6e2bb4a5aaee407251a95ba 100644
--- a/.gitsubprojects
+++ b/.gitsubprojects
@@ -5,6 +5,6 @@
 #git_subproject( Brion https://github.com/BlueBrain/Brion.git 073f356 )
 git_subproject( ReTo https://github.com/gmrvvis/ReTo.git 13f5747f )
 git_subproject( prefr https://github.com/gmrvvis/prefr.git 5b4b874a )
-git_subproject( SimIL https://github.com/gmrvvis/SimIL.git e4edaa3c )
+git_subproject( SimIL https://github.com/gmrvvis/SimIL.git 8be4a847 )
 git_subproject( scoop https://github.com/gmrvvis/scoop.git b3326cd )
 git_subproject( acuterecorder https://github.com/vg-lab/AcuteRecorder.git 3ae70efa )
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 232bb5e7c045091c250db09d35ff9a50e60666c1..b8e8394bb10eaf9c2c5e996b50f60a9df95c570c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,7 +9,7 @@
 cmake_minimum_required( VERSION 3.1 FATAL_ERROR )
 
 # visimpl project and version
-project( visimpl VERSION 1.7.0 )
+project( visimpl VERSION 1.7.1 )
 set( visimpl_VERSION_ABI 6 )
 
 SET( VISIMPL_LICENSE "GPL")
diff --git a/sumrice/DisplayManagerWidget.cpp b/sumrice/DisplayManagerWidget.cpp
index a63d4e8cfe2b80c1d42fbe85749304b087a5714a..38547f651893378f31a2fa1753da8740a2b70ac6 100644
--- a/sumrice/DisplayManagerWidget.cpp
+++ b/sumrice/DisplayManagerWidget.cpp
@@ -267,8 +267,8 @@ void DisplayManagerWidget::refreshHistograms(void)
     container->setLayout(contLayout);
 
     QLabel *nameLabel = new QLabel(tr(hist->name().c_str()), container);
-
-    QLabel *numberLabel = new QLabel(QString::number(hist->gidsSize()), container);
+    QString sizeText = row == 0 ? QString() : QString::number(hist->filteredGIDs().size());
+    QLabel *numberLabel = new QLabel(sizeText, container);
 
     QPushButton *hideButton = new QPushButton(container);
     hideButton->setIcon(QIcon(QPixmap(":icons/show.svg")));
diff --git a/sumrice/Histogram.cpp b/sumrice/Histogram.cpp
index a7d637d6bb2bce9a44a48b7355e65ee6c204c5a4..fd34552048a6b506d6cca3016dba52428bcb15e9 100644
--- a/sumrice/Histogram.cpp
+++ b/sumrice/Histogram.cpp
@@ -226,7 +226,7 @@ namespace visimpl
     omp_set_dynamic( 0 );
     omp_set_num_threads( numThreads );
     const auto& references = _spikes->refData( );
-    for( int i = 0; i < ( int ) references.size( ); i++)
+    for( int i = 0; i < static_cast<int>(references.size( )); i++)
     {
       simil::TSpikes::const_iterator spikeIt = references[ i ];
 
diff --git a/sumrice/StackViz.cpp b/sumrice/StackViz.cpp
index deb9d2d1b2103f0b5afb6bf8e90e209eeec6e0cf..22e4df0d2fb11271bd3876dccf2dabd1f6790616 100644
--- a/sumrice/StackViz.cpp
+++ b/sumrice/StackViz.cpp
@@ -50,7 +50,7 @@ StackViz::StackViz( QWidget *parent_ )
   setLayout( new QGridLayout( ));
 }
 
-void StackViz::init( simil::SimulationPlayer* player )
+void StackViz::init( simil::SimulationPlayer* player, simil::SubsetEventManager *manager )
 {
   if ( !player ) return;
 
@@ -58,7 +58,7 @@ void StackViz::init( simil::SimulationPlayer* player )
 
   _player = player;
   _simulationType = _player->data( )->simulationType( );
-  _subsetEventManager = _player->data( )->subsetsEvents( );
+  _subsetEventManager = manager;
 
   // TODO: events file.
   initSummaryWidget( );
diff --git a/sumrice/StackViz.h b/sumrice/StackViz.h
index b4da70661cbda4ad1495d3d1be79559c0f186c98..2b126281e3dd293c2fdbc6fcdf278b134f13adb8 100644
--- a/sumrice/StackViz.h
+++ b/sumrice/StackViz.h
@@ -51,7 +51,7 @@ namespace visimpl
     virtual ~StackViz()
     {};
 
-    void init( simil::SimulationPlayer* p );
+    void init( simil::SimulationPlayer* p, simil::SubsetEventManager *m );
 
     /** \brief Adds an histogram for the given ids.
      * \param[in] selection Selected indexes.
diff --git a/sumrice/Summary.cpp b/sumrice/Summary.cpp
index 95daa57d3c8a8e8a62876fdf95f661cf38581454..75f57a45e5652a2f17a35e3f1d168d6b89fb2544 100644
--- a/sumrice/Summary.cpp
+++ b/sumrice/Summary.cpp
@@ -778,12 +778,6 @@ namespace visimpl
 
     histogram->init( _bins, _zoomFactor );
 
-    if( histogram->empty())
-    {
-      delete histogram;
-      return;
-    }
-
     histogram->setMinimumHeight( _heightPerRow );
     histogram->setMaximumHeight( _heightPerRow );
     histogram->setMinimumWidth( _sizeChartHorizontal );
diff --git a/visimpl/MainWindow.cpp b/visimpl/MainWindow.cpp
index 93b7b7c48a645eb9f3e5df24e82dabfccacae9e4..d8dd4ebc816b81eaf5e418b296f5b746af57171c 100644
--- a/visimpl/MainWindow.cpp
+++ b/visimpl/MainWindow.cpp
@@ -359,12 +359,14 @@ namespace visimpl
 
     _selectionManager->setGIDs( _domainManager->gids( ) );
 
-    _subsetEvents = _openGLWidget->player( )->data( )->subsetsEvents( );
+    _subsetEvents = _openGLWidget->subsetEventsManager();
 
     _ui->actionToggleStackVizDock->setEnabled(true);
     _ui->actionOpenSubsetEventsFile->setEnabled(true);
     _ui->actionCloseData->setEnabled(true);
 
+    _buttonImportGroups->setEnabled( _subsetEvents->numSubsets() > 0 );
+
     if(_openGLWidget)
     {
       auto player = _openGLWidget->player();
@@ -787,7 +789,7 @@ namespace visimpl
 
     if ( _openGLWidget && _openGLWidget->player( ))
     {
-      _stackViz->init( _openGLWidget->player( ));
+      _stackViz->init( _openGLWidget->player( ), _openGLWidget->subsetEventsManager() );
     }
 
     _stackVizDock->setWidget( _stackViz );
@@ -1961,6 +1963,11 @@ void MainWindow::clearGroups( void )
 
       addGroupControls( group, _domainManager->groups( ).size( ) - 1,
                         filteredGIDs.size( ) );
+
+      visimpl::Selection selection;
+      selection.name = groupName;
+      selection.gids = filteredGIDs;
+      _stackViz->addSelection( selection );
     };
     std::for_each(groups.cbegin(), groups.cend(), addGroup);
 
@@ -2376,6 +2383,7 @@ void MainWindow::clearGroups( void )
 
           player = new simil::SpikesPlayer( );
           player->LoadData( netData , simData );
+          _subsetEvents = netData->subsetsEvents();
 
           // NOTE: loader doesn't get destroyed because has a loop for getting data.
         }
@@ -2416,6 +2424,10 @@ void MainWindow::clearGroups( void )
 
     _openGLWidget->setPlayer(player, dataType);
 
+    _openGLWidget->subsetEventsManager( _subsetEvents );
+    _openGLWidget->showEventsActivityLabels( _ui->actionShowEventsActivity->isChecked( ));
+    _openGLWidget->idleUpdate( _ui->actionUpdateOnIdle->isChecked( ) );
+
     configureComponents( );
 
     openSubsetEventFile( m_subsetEventFile, false );
@@ -2424,7 +2436,9 @@ void MainWindow::clearGroups( void )
 
     _comboAttribSelection->clear();
 
-    _stackViz->init( player );
+    _stackViz->init( player, _subsetEvents );
+
+    _subsetImporter->reload(_subsetEvents);
 
     switch(dataType)
     {
@@ -2827,7 +2841,6 @@ void MainWindow::clearGroups( void )
     _groupsVisButtons.erase(_groupsVisButtons.begin() + idx);
 
     const bool enabled = !_groupsVisButtons.empty();
-    _buttonImportGroups->setEnabled( enabled );
     _buttonClearGroups->setEnabled( enabled );
     _buttonSaveGroups->setEnabled( enabled);
 
diff --git a/visimpl/SubsetImporter.cpp b/visimpl/SubsetImporter.cpp
index 16f84425e94514c959fce1b37801a9dd4fc1ee64..1cc86a3379d34456a9c52b152473638ba55313a0 100644
--- a/visimpl/SubsetImporter.cpp
+++ b/visimpl/SubsetImporter.cpp
@@ -25,7 +25,7 @@
 
 // Qt
 #include <QGroupBox>
-#include <QScrollArea>
+#include <QListWidget>
 #include <QCheckBox>
 #include <QLabel>
 
@@ -36,12 +36,12 @@ namespace visimpl
   , _subsetEventManager( nullptr )
   , _buttonAccept( nullptr )
   , _buttonCancel( nullptr )
-  , _layoutSubsets( nullptr )
   {
     init( );
 
     setWindowIcon(QIcon(tr(":/visimpl.png")));
     setWindowTitle(tr("Import Subsets"));
+    setMinimumSize(400, 400);
   }
 
   void SubsetImporter::init( void )
@@ -62,13 +62,12 @@ namespace visimpl
     layoutHeader->addWidget( checkBoxHeader, 0, 0, 1, 2 );
     layoutHeader->addWidget( labelHeader, 0, 2, 1, 1 );
 
-    auto scrollSubsets = new QScrollArea( );
+    _listSubsets = new QListWidget( );
     layoutGroupBox->addWidget( header );
-    layoutGroupBox->addWidget( scrollSubsets );
+    layoutGroupBox->addWidget( _listSubsets );
 
-    _layoutSubsets = new QVBoxLayout( );
-    _layoutSubsets->setMargin( 0 );
-    scrollSubsets->setLayout( _layoutSubsets );
+    _listSubsets->setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff);
+    _listSubsets->setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded);
 
     auto foot = new QWidget( );
     auto layoutBottom = new QGridLayout( );
@@ -118,25 +117,22 @@ namespace visimpl
       checkBox->setChecked( true );
 
       container->setLayout( layout );
+      container->setFixedHeight(30);
       layout->addWidget( checkBox, 0, 0, 1, 2 );
       layout->addWidget( label, 0, 2, 1, 1 );
 
-      _layoutSubsets->addWidget( container );
+      auto item = new QListWidgetItem(_listSubsets, Qt::UserRole+1);
+
+      _listSubsets->addItem(item);
+      item->setSizeHint(QSize(0, 35));
+      _listSubsets->setItemWidget(item, container);
     };
     std::for_each(names.cbegin(), names.cend(), createSubsetWidgets);
   }
 
   void SubsetImporter::clear( )
   {
-    auto removeSubsetWidgets = [this](std::pair<const std::string, tSubsetLine> &row)
-    {
-      auto container = std::get< sl_container >( row.second );
-      _layoutSubsets->removeWidget( container );
-
-      delete container;
-    };
-    std::for_each(_subsets.begin(), _subsets.end(), removeSubsetWidgets);
-
+    _listSubsets->clear();
     _subsets.clear( );
   }
 
@@ -154,5 +150,3 @@ namespace visimpl
     return result;
   }
 }
-
-
diff --git a/visimpl/SubsetImporter.h b/visimpl/SubsetImporter.h
index f0481a4f891cc11558ab6aa6342296874bf41909..a1ee7fa94982b5c864f87e9326148b18589fc303 100644
--- a/visimpl/SubsetImporter.h
+++ b/visimpl/SubsetImporter.h
@@ -34,6 +34,8 @@
 // SimIL
 #include <simil/simil.h>
 
+class QListWidget;
+
 namespace visimpl
 {
   class SubsetImporter : public QDialog
@@ -60,7 +62,7 @@ namespace visimpl
     QPushButton* _buttonAccept;
     QPushButton* _buttonCancel;
 
-    QVBoxLayout* _layoutSubsets;
+    QListWidget* _listSubsets;
 
     std::map< std::string, tSubsetLine > _subsets;
   };