diff --git a/modules/gui/src/sequence/row.cc b/modules/gui/src/sequence/row.cc
index 8846f1913224d5bd42b7be4ce47f2ac88f65512a..a109fe98c9c5f8466177c7024635d2b93ab436a2 100644
--- a/modules/gui/src/sequence/row.cc
+++ b/modules/gui/src/sequence/row.cc
@@ -67,4 +67,9 @@ bool Row::IsPosValid(int pos)
   return false;
 }
 
+const PainterList& Row::GetPainters() const
+{
+  return painter_;
+}
+
 }}
diff --git a/modules/gui/src/sequence/row.hh b/modules/gui/src/sequence/row.hh
index 161e251a601c81810f9e53b504bf25be3c57547d..794a48db9818855a307a88bd09c017b4e6c1b600 100644
--- a/modules/gui/src/sequence/row.hh
+++ b/modules/gui/src/sequence/row.hh
@@ -44,6 +44,8 @@ public:
   Painter* GetPainter(int pos);
   int GetPainterCount();
 
+  const PainterList& GetPainters() const;
+
 private:
   bool IsPosValid(int pos);
   PainterList painter_;
diff --git a/modules/gui/src/sequence/sequence_delegate.cc b/modules/gui/src/sequence/sequence_delegate.cc
index a152298e7e375ce61afa867a74156d2d9fd44112..827aef65f793416f556e76df9abb6d71b267bff9 100644
--- a/modules/gui/src/sequence/sequence_delegate.cc
+++ b/modules/gui/src/sequence/sequence_delegate.cc
@@ -29,22 +29,15 @@ namespace ost { namespace gui {
 
 SequenceDelegate::SequenceDelegate(SequenceModel* seq_model, QObject *parent)
     : QItemDelegate(parent), seq_model_(seq_model)
-{
-  QFontMetrics metrics = QFontMetrics(QFont("Courier",10));
-  default_size = QSize(metrics.width(QString("_"))+2,metrics.height()+2);
-}
+{}
 
 void SequenceDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
                          const QModelIndex &index) const
 {
-/*  Row* row = seq_model_->GetRow(index);
-  for(int i=0; i < row->GetPainterCount(); i++){
-    row->GetPainter(i)->Paint(painter, option, index);
-  }*/
-}
-
-QSize& SequenceDelegate::GetDefaultSize(){
-  return default_size;
+  const PainterList& painters = seq_model_->GetPainters(index);
+  for(int i=0; i < painters.size(); i++){
+    painters[i]->Paint(painter, option, index);
+  }
 }
 
 }}
diff --git a/modules/gui/src/sequence/sequence_delegate.hh b/modules/gui/src/sequence/sequence_delegate.hh
index 5629a355bf6809c4641d5550db7a6c9dbffff1c6..3c74fcf54abd4f7604c10b41dde9427fa0e7d54f 100644
--- a/modules/gui/src/sequence/sequence_delegate.hh
+++ b/modules/gui/src/sequence/sequence_delegate.hh
@@ -26,7 +26,6 @@
 #include <QItemDelegate>
 #include <QModelIndex>
 
-#include "sequence_table_view.hh"
 #include "sequence_model.hh"
 
 namespace ost { namespace gui {
diff --git a/modules/gui/src/sequence/sequence_model.cc b/modules/gui/src/sequence/sequence_model.cc
index 1fdf5730d654532d47dab48d64764c1dd791a6e5..06199fbf40b428d8e1a41f5324dd1f40bfb0db40 100644
--- a/modules/gui/src/sequence/sequence_model.cc
+++ b/modules/gui/src/sequence/sequence_model.cc
@@ -35,7 +35,7 @@ SequenceModel::SequenceModel(QObject *parent)
 
 void SequenceModel::InsertSequence(QString& name, seq::SequenceHandle& seq){
   int cols = this->columnCount();
-  int new_cols = cols + seq.GetLength();
+  int new_cols = seq.GetLength();
   this->beginInsertRows(QModelIndex(),this->rowCount(),this->rowCount());
   objects_.append(new ViewObject(seq, name, this));
   if(new_cols > cols){
@@ -70,6 +70,11 @@ ViewObject* SequenceModel::GetObject(QString& name){
   return NULL;
 }
 
+const PainterList& SequenceModel::GetPainters(const QModelIndex& index) const{
+  QPair<int, ViewObject*> pair = this->GetItem(index);
+  return pair.second->GetRow(pair.first)->GetPainters();
+}
+
 QPair<int, ViewObject*> SequenceModel::GetItem(const QModelIndex& index) const{
   if(!objects_.isEmpty()){
     int ind_row = index.row();
diff --git a/modules/gui/src/sequence/sequence_model.hh b/modules/gui/src/sequence/sequence_model.hh
index e025b0ddadabd1f5d8af286c9baed1435b5abd0a..234cebc7bbddd70155d2783f06a9d1fbfaa0f3d1 100644
--- a/modules/gui/src/sequence/sequence_model.hh
+++ b/modules/gui/src/sequence/sequence_model.hh
@@ -45,6 +45,7 @@ public:
   void RemoveSequence(QString& name);
 
   ViewObject* GetObject(QString& name);
+  const PainterList& GetPainters(const QModelIndex& index) const;
 
   QPair<int, ViewObject*> GetItem(const QModelIndex& index) const;
 
diff --git a/modules/gui/src/sequence/sequence_table_view.cc b/modules/gui/src/sequence/sequence_table_view.cc
index 10e16a597a7faa19dfec664d1c86ba6b4d21caef..e9e4ab84c39db65190cc5a39d46108c8a5226290 100644
--- a/modules/gui/src/sequence/sequence_table_view.cc
+++ b/modules/gui/src/sequence/sequence_table_view.cc
@@ -27,6 +27,7 @@
 
 #include <iostream>
 #include "sequence_table_view.hh"
+#include "sequence_model.hh"
 
 namespace ost { namespace gui {
 
@@ -112,6 +113,8 @@ SequenceTableView::SequenceTableView(QAbstractItemModel * model)
 
   connect(column_not_move_->verticalScrollBar(), SIGNAL(valueChanged(int)), this->verticalScrollBar(), SLOT(setValue(int)));
   connect(verticalScrollBar(), SIGNAL(valueChanged(int)), column_not_move_->verticalScrollBar(), SLOT(setValue(int)));
+
+  delegate_ = new SequenceDelegate(qobject_cast<SequenceModel*>(this->model()),this);
  }
 
 void SequenceTableView::ResizeWidth(int index, int, int size)
@@ -163,8 +166,9 @@ void SequenceTableView::updateNotMoveColumn()
 void SequenceTableView::columnCountChanged(const QModelIndex& index, int old_count, int new_count){
   if(old_count >= 0 && old_count <= new_count){
     if(old_count == 0)old_count = 1;
-    for(int col=old_count; col<new_count; col++){
+    for(int col=old_count; col<=new_count; col++){
       column_not_move_->setColumnHidden(col, true);
+      this->setItemDelegateForColumn(col, delegate_);
     }
   }
 }
diff --git a/modules/gui/src/sequence/sequence_table_view.hh b/modules/gui/src/sequence/sequence_table_view.hh
index 9b873c40a64b5eaf98de1d08b8eb1e0aec4743c2..b846982fa6b1f1f51f2f326684dde9d055aa7056 100644
--- a/modules/gui/src/sequence/sequence_table_view.hh
+++ b/modules/gui/src/sequence/sequence_table_view.hh
@@ -27,6 +27,8 @@
 
 #include <ost/gui/module_config.hh>
 
+#include "sequence_delegate.hh"
+
 namespace ost { namespace gui {
 
 /// \brief QTableView with first column not moving
@@ -50,7 +52,8 @@ private slots:
   void ResizeHeight(int index, int, int size);
 
 private:
-  QTableView *column_not_move_;
+  QTableView* column_not_move_;
+  SequenceDelegate* delegate_;
   void updateNotMoveColumn();
 };
 
diff --git a/modules/gui/src/sequence/sequence_viewer.cc b/modules/gui/src/sequence/sequence_viewer.cc
index 378c6f1813cdd7b0390cd1a8e46584b037d0a48a..4fa20eac3b4054cf4374210d0ec924a8bc368246 100644
--- a/modules/gui/src/sequence/sequence_viewer.cc
+++ b/modules/gui/src/sequence/sequence_viewer.cc
@@ -54,10 +54,9 @@ SequenceViewerV2::SequenceViewerV2(QWidget* parent): Widget(NULL,parent)
   layout->addWidget(seq_table_view_);
   this->setLayout(layout);
   connect(model_,SIGNAL(columnsInserted(const QModelIndex&, int, int)),seq_table_view_,SLOT(columnCountChanged(const QModelIndex&, int, int)));
-  /*
+
   seq_table_view_->horizontalHeader()->setMinimumSectionSize(2);
   seq_table_view_->verticalHeader()->setMinimumSectionSize(2);
-  */
 }
 
 void SequenceViewerV2::NodeAdded(const gfx::GfxNodeP& n)
diff --git a/modules/gui/src/sequence/view_object.cc b/modules/gui/src/sequence/view_object.cc
index bff516edc4491396ee060905af35bfa6559aae58..c3bd14e0ccaf1be3595ba674b83dcedbb0ee06a1 100644
--- a/modules/gui/src/sequence/view_object.cc
+++ b/modules/gui/src/sequence/view_object.cc
@@ -37,11 +37,20 @@ ViewObject::ViewObject(seq::SequenceList& sequences, const QString& name, QObjec
     seq::SequenceHandle seq = sequences[i];
     this->AddSequence(seq);
   }
+  this->Init();
 }
 
 ViewObject::ViewObject(seq::SequenceHandle& sequence, const QString& name, QObject *parent): QObject(parent), name_(name)
 {
   this->AddSequence(sequence);
+  this->Init();
+}
+
+void ViewObject::Init()
+{
+  font_ = QFont("Courier",10);
+  QFontMetrics metrics = QFontMetrics(font_);
+  default_size_ = QSize(metrics.width(QString("_"))+2,metrics.height()+2);
 }
 
 void ViewObject::InsertRow(int pos, Row* row)
@@ -103,6 +112,12 @@ QVariant ViewObject::GetData(int row, int column, int role)
     if (role==Qt::DisplayRole) {
       return QVariant(QString(rows_[row].second.GetOneLetterCode(column - 1)));
     }
+    if (role==Qt::FontRole){
+      return QVariant(font_);
+    }
+    if (role==Qt::SizeHintRole){
+      return QVariant(default_size_);
+    }
   }
   return QVariant();
 }
diff --git a/modules/gui/src/sequence/view_object.hh b/modules/gui/src/sequence/view_object.hh
index e3d4dcc5a887772ab30c3d50b4a2cb897a8b3219..d8ae32802d4556d09cad701811cbb95f6ef10fed 100644
--- a/modules/gui/src/sequence/view_object.hh
+++ b/modules/gui/src/sequence/view_object.hh
@@ -26,6 +26,8 @@
 #include <QObject>
 #include <QPair>
 #include <QList>
+#include <QFont>
+#include <QSize>
 
 #include <ost/seq/sequence_list.hh>
 
@@ -62,8 +64,11 @@ public:
 
 
 private:
+  void Init();
   QString name_;
   QList<QPair<Row*, seq::SequenceHandle> > rows_;
+  QFont font_;
+  QSize default_size_;
 };