diff --git a/container/sortedvector.cpp b/container/sortedvector.cpp
index 2b8e6d0a72b38e1e9b7f56fb1a1ad6ebfcfe3707..c395076f0cf8348d72db6cbd2d8c07c3875d1956 100644
--- a/container/sortedvector.cpp
+++ b/container/sortedvector.cpp
@@ -69,3 +69,16 @@ int SortedVector<T>::findInsertPosition( const QSharedPointer<T> &pointer ) cons
     return row;
 }
 
+template<typename T>
+int SortedVector<T>::findPosition(const QSharedPointer<T> &pointer) const
+{
+int row = -1;
+    for ( int i = 0; i < this->count(); i++ ) {
+        if(*( *this )[i] == *pointer){
+            row = i;
+            break;
+        }
+    }
+    return row;
+}
+
diff --git a/container/sortedvector.h b/container/sortedvector.h
index e34a15e6ba48cb0d66df009cd35fe4305c772d6a..e4ce6e8917b291d41cd0bc296f8dc14a41194189 100644
--- a/container/sortedvector.h
+++ b/container/sortedvector.h
@@ -29,6 +29,7 @@ template<typename T> class SortedVector : public QVector<QSharedPointer<T>>
     public:
         int insertSort( const QSharedPointer<T> & );
         int findInsertPosition( const QSharedPointer<T> & ) const;
+        int findPosition( const QSharedPointer<T> & ) const;
         bool operator =( const QVector<QSharedPointer<T>> &o )
         {
             this->clear();
diff --git a/persistancelayer.cpp b/persistancelayer.cpp
index 9940e8378cfe6df9513c062ea3cc5486ce145778..455805267718c47d9f4775bc0d8f39b7ff2c466b 100755
--- a/persistancelayer.cpp
+++ b/persistancelayer.cpp
@@ -1408,6 +1408,8 @@ QString PersistanceLayer::getNewImagePath( )
 
 
 
+
+
 PersistanceLayer::~PersistanceLayer()
 {
     mDb.close();
@@ -1499,6 +1501,19 @@ void PersistanceLayer::initQueries()
 
 }
 
+void PersistanceLayer::deleteMessage(const QString id)
+{
+    QSqlQuery deleteMessage(mDb);
+    deleteMessage.prepare("DELETE FROM messages WHERE id=:id;");
+    deleteMessage.bindValue(":id",id);
+    if(!deleteMessage.exec()){
+        qWarning() << "id: " << id;
+        qWarning() << deleteMessage.lastQuery();
+        qWarning() << deleteMessage.executedQuery();
+        qWarning() << deleteMessage.lastError();
+    }
+}
+
 void PersistanceLayer::close()
 {
     persistanceLayer->deleteLater();
diff --git a/persistancelayer.h b/persistancelayer.h
index bf107ed8be791c90c41a4dee3c8a318e7d188b7c..49852b9e02a4c5a10870f29d3f5eba2fa6a4f2be 100755
--- a/persistancelayer.h
+++ b/persistancelayer.h
@@ -94,6 +94,7 @@ class PersistanceLayer : public QObject
 
         void init();
         bool mDbReady = false;
+        void deleteMessage(const QString id);
 
     private:
         void commit( void );