diff --git a/src/channelmanager.cpp b/src/channelmanager.cpp
deleted file mode 100644
--- a/src/channelmanager.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
-  Copyright © 2017 Hasan Yavuz Özderya
-
-  This file is part of serialplot.
-
-  serialplot is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 3 of the License, or
-  (at your option) any later version.
-
-  serialplot is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with serialplot.  If not, see .
-*/
-
-#include 
-
-#include 
-
-#include "channelmanager.h"
-#include "setting_defines.h"
-
-ChannelManager::ChannelManager(unsigned numberOfChannels, unsigned numberOfSamples, QObject *parent) :
-    QObject(parent),
-    _infoModel(numberOfChannels)
-{
-    _numOfChannels = numberOfChannels;
-    _numOfSamples = numberOfSamples;
-    _paused = false;
-
-    for (unsigned int i = 0; i < numberOfChannels; i++)
-    {
-        channelBuffers.append(new FrameBuffer(numberOfSamples));
-    }
-
-    connect(&_infoModel, &ChannelInfoModel::dataChanged,
-            this, &ChannelManager::onChannelInfoChanged);
-}
-
-ChannelManager::~ChannelManager()
-{
-    for (auto buffer : channelBuffers)
-    {
-        delete buffer;
-    }
-}
-
-unsigned ChannelManager::numOfChannels()
-{
-    return channelBuffers.size();
-}
-
-unsigned ChannelManager::numOfSamples()
-{
-    return _numOfSamples;
-}
-
-void ChannelManager::setNumOfChannels(unsigned number)
-{
-    unsigned int oldNum = channelBuffers.size();
-
-    if (number > oldNum)
-    {
-        // add new channels
-        for (unsigned int i = 0; i < number - oldNum; i++)
-        {
-            channelBuffers.append(new FrameBuffer(_numOfSamples));
-        }
-    }
-    else if(number < oldNum)
-    {
-        // remove channels
-        for (unsigned int i = oldNum-1; i > number-1; i--)
-        {
-            delete channelBuffers.takeLast();
-        }
-    }
-
-    _numOfChannels = number;
-    _infoModel.setNumOfChannels(number);
-
-    emit numOfChannelsChanged(number);
-}
-
-void ChannelManager::setNumOfSamples(unsigned number)
-{
-    _numOfSamples = number;
-
-    for (int ci = 0; ci < channelBuffers.size(); ci++)
-    {
-        channelBuffers[ci]->resize(_numOfSamples);
-    }
-
-    emit numOfSamplesChanged(number);
-}
-
-void ChannelManager::pause(bool paused)
-{
-    _paused = paused;
-}
-
-FrameBuffer* ChannelManager::channelBuffer(unsigned channel)
-{
-    return channelBuffers[channel];
-}
-
-ChannelInfoModel* ChannelManager::infoModel()
-{
-    return &_infoModel;
-}
-
-QString ChannelManager::channelName(unsigned channel)
-{
-    return _infoModel.data(_infoModel.index(channel, ChannelInfoModel::COLUMN_NAME),
-                           Qt::DisplayRole).toString();
-}
-
-void ChannelManager::onChannelInfoChanged(const QModelIndex & topLeft,
-                                          const QModelIndex & bottomRight,
-                                          const QVector & roles)
-{
-    int start = topLeft.row();
-    int end = bottomRight.row();
-    int col = topLeft.column();
-
-    for (int ci = start; ci <= end; ci++)
-    {
-        for (auto role : roles)
-        {
-            switch (role)
-            {
-                case Qt::EditRole:
-                    if (col == ChannelInfoModel::COLUMN_NAME)
-                    {
-                        emit channelNameChanged(ci, channelName(ci));
-                    }
-                    break;
-                case Qt::ForegroundRole:
-                    if (col == ChannelInfoModel::COLUMN_NAME)
-                    {
-                        // TODO: emit channel color changed
-                    }
-                    break;
-                case Qt::CheckStateRole:
-                    if (col == ChannelInfoModel::COLUMN_VISIBILITY)
-                    {
-                        // TODO: emit visibility
-                    }
-                    break;
-            }
-        }
-        // emit channelNameChanged(i, channelName(i));
-    }
-}
-
-void ChannelManager::addData(double* data, unsigned size)
-{
-    Q_ASSERT(size % _numOfChannels == 0);
-
-    if (_paused) return;
-
-    int n = size / _numOfChannels;
-    for (unsigned ci = 0; ci < _numOfChannels; ci++)
-    {
-        channelBuffers[ci]->addSamples(&data[ci*n], n);
-    }
-
-    emit dataAdded();
-}
-
-void ChannelManager::saveSettings(QSettings* settings)
-{
-    _infoModel.saveSettings(settings);
-}
-
-void ChannelManager::loadSettings(QSettings* settings)
-{
-    _infoModel.loadSettings(settings);
-}