commit 667040543b00369aa9de9f48f1a87f14f70c4b2a
Author: Christian Ehringfeld <c.ehringfeld@t-online.de>
Date:   Fri Jul 31 16:39:59 2015 +0200

    improvements

diff --git a/samples/example/main.cpp b/samples/example/main.cpp
index d37ee95..5c5add2 100644
--- a/samples/example/main.cpp
+++ b/samples/example/main.cpp
@@ -18,10 +18,10 @@ int main(int argc, char *argv[]) {
     QTime t;
     t.start();
     CuteEntityManager::EntityManager *e = new
-//            CuteEntityManager::EntityManager("QSQLITE",
-//                                             QDir::currentPath() + "/db.sqlite");
-                CuteEntityManager::EntityManager("QSQLITE",
-                                                     ":memory:");
+    CuteEntityManager::EntityManager("QSQLITE",
+                                     QDir::currentPath() + "/db.sqlite");
+//                CuteEntityManager::EntityManager("QSQLITE",
+//                                                     ":memory:");
 
     /**
      * @brief EntityInstanceFactory::registerClass<EntityClass>
@@ -35,7 +35,7 @@ int main(int argc, char *argv[]) {
     QThread *entityManager = new QThread();
     e->moveToThread(entityManager);
     QStringList inits = QStringList() << "Contact" << "Address" <<
-                                         "Pupil" << "Group";
+                        "Pupil" << "Group";
     /**
       * Instead of startup(version,qstringlist) you can call method createTable of EntityManager (e->create(sharedptr))
       * startup will create tables inclusive relation tables for classes in QStringList inits
@@ -43,9 +43,9 @@ int main(int argc, char *argv[]) {
     e->startup("0.1", inits);
 
     QSharedPointer<CuteEntityManager::Entity> p =
-            QSharedPointer<CuteEntityManager::Entity>(new Person("Max", "Mustermann",
-                                                                 Person::Gender::MALE, "", "", "",
-                                                                 QDate::currentDate()));
+        QSharedPointer<CuteEntityManager::Entity>(new Person("Max", "Mustermann",
+                Person::Gender::MALE, "", "", "",
+                QDate::currentDate()));
     /** ---------------------------------
      * PERSIST
      * ---------------------------------
@@ -56,10 +56,10 @@ int main(int argc, char *argv[]) {
     gPtr->setName("9b");
     QSharedPointer<Entity> groupPtr = gPtr.objectCast<Entity>();
     QSharedPointer<Person> mainTeacher = QSharedPointer<Person>(new Person("Max",
-                                                                           "Mustermann", Person::Gender::MALE));
+                                         "Mustermann", Person::Gender::MALE));
     gPtr->setMainTeacher(mainTeacher);
     //Persons will also persisted
-    if(e->count(groupPtr->getTablename()) <= 0) {
+    if (e->count(groupPtr->getTablename()) <= 0) {
         e->create(groupPtr, true, true);
     }
 
@@ -98,21 +98,21 @@ int main(int argc, char *argv[]) {
     qDebug() << "GroupSize:" << pers->getGroups().size();
 
     /**
-     * or you can use following syntax:
+     * or you can use this syntax:
      */
     qDebug() << "-----------------------------";
     QSharedPointer<Person> foundMainTeacher = e->findById<Person *>
             (1).objectCast<Person>();
     qDebug() << "FoundMainTeacher:" << foundMainTeacher->toString();
     qDebug() << "FoundMainTeacherGroupSize:" <<
-                foundMainTeacher->getMaintainedGroups().size();
+             foundMainTeacher->getMaintainedGroups().size();
 
     qDebug() << "-----------------------------";
     QSharedPointer<Pupil> foundPupil = e->findById<Pupil *>
-            (13).objectCast<Pupil>();
+                                       (13).objectCast<Pupil>();
     qDebug() << "FoundPupil:" << foundPupil->toString();
     qDebug() << "FoundPupilGroupSize:" <<
-                foundPupil->getGroups().size();
+             foundPupil->getGroups().size();
 
     qDebug() << "-----------------------------";
 
diff --git a/samples/example/models/faker/createfakemodeldata.cpp b/samples/example/models/faker/createfakemodeldata.cpp
index ac0da22..080222e 100644
--- a/samples/example/models/faker/createfakemodeldata.cpp
+++ b/samples/example/models/faker/createfakemodeldata.cpp
@@ -9,13 +9,6 @@ void CreateFakeModelData::fillGroup(Group* group) {
     group->addPerson(new Person("Tim","Berg",Person::Gender::MALE,"Tim Berg.jpg",QString(),QString(),QDate(2000,7,13),0));
     group->addPerson(new Person("Lena","Conrad",Person::Gender::FEMALE,"Lena Conrad.jpg",QString(),QString(),QDate(2000,7,13),0));
     group->addPerson(new Person("Marcel","Dunst",Person::Gender::MALE,"Marcel Dunst.jpg",QString(),QString(),QDate(2000,7,13),0));
-    group->addPerson(new Person("Carsten","Ernst",Person::Gender::MALE,"Carsten Ernst.jpg",QString(),QString(),QDate(2000,7,13),0));
-    group->addPerson(new Person("Hannah","Eschborn",Person::Gender::FEMALE,"Hannah Eschborn.jpg",QString(),QString(),QDate(2000,7,13),0));
-    group->addPerson(new Person("Vera","Geseke",Person::Gender::FEMALE,"Vera Geseke.jpg",QString(),QString(),QDate(2000,4,1),0));
-    group->addPerson(new Person("Jann","Hagedorn",Person::Gender::MALE,"Jann Hagedorn.jpg",QString(),QString(),QDate(2000,8,16),0));
-    group->addPerson(new Person("Svenja","Hartmann",Person::Gender::FEMALE,"Svenja Hartmann.jpg",QString(),QString(),QDate(2000,2,2),0));
-    group->addPerson(new Person("Timo","Haufer",Person::Gender::MALE,"Timo Haufer.jpg",QString(),QString(),QDate(2000,2,28),0));
-
 
     group->addPupil(new Pupil("Tim","Berg",Person::Gender::MALE,"Tim Berg.jpg",QString(),QString(),QDate(2000,7,13),"05c",0));
     group->addPupil(new Pupil("Lena","Conrad",Person::Gender::FEMALE,"Lena Conrad.jpg",QString(),QString(),QDate(2000,7,13),"05c",0));
@@ -27,513 +20,59 @@ void CreateFakeModelData::fillGroup(Group* group) {
     group->addPupil(new Pupil("Svenja","Hartmann",Person::Gender::FEMALE,"Svenja Hartmann.jpg",QString(),QString(),QDate(2000,2,2),"05c",0));
     group->addPupil(new Pupil("Timo","Haufer",Person::Gender::MALE,"Timo Haufer.jpg",QString(),QString(),QDate(2000,2,28),"05c",0));
     group->addPupil(new Pupil("Birthe","Jäger",Person::Gender::FEMALE,"Birthe Jaeger.jpg",QString(),QString(),QDate(2000,2,14),"05c",0));
-    group->addPupil(new Pupil("Torben","Kadatz",Person::Gender::MALE,"Torben Kadatz.jpg",QString(),QString(),QDate(2000,2,11),"05c",0));
-    group->addPupil(new Pupil("Julia","Kaiser",Person::Gender::FEMALE,"Julia Kaiser.jpg",QString(),QString(),QDate(2000,10,23),"05c",0));
-    group->addPupil(new Pupil("Nadine","Kersting",Person::Gender::FEMALE,"Nadine Kersting.jpg",QString(),QString(),QDate(2000,2,1),"05c",0));
-    group->addPupil(new Pupil("Friederike","Kerzel",Person::Gender::FEMALE,"Friederike Kerzel.jpg",QString(),QString(),QDate(2000,8,12),"05c",0));
-    group->addPupil(new Pupil("Miriam","Köller",Person::Gender::FEMALE,"Miriam Koeller.jpg",QString(),QString(),QDate(2000,6,27),"05c",0));
-    group->addPupil(new Pupil("Mara","Langenberg",Person::Gender::FEMALE,"Mara Langenberg.jpg",QString(),QString(),QDate(2000,7,14),"05c",0));
-    group->addPupil(new Pupil("Stefan","Maier",Person::Gender::MALE,"Stefan Maier.jpg",QString(),QString(),QDate(2000,3,26),"05c",0));
-    group->addPupil(new Pupil("Dana","Meerkat",Person::Gender::FEMALE,"Dana Meerkat.jpg",QString(),QString(),QDate(2000,3,10),"05c",0));
-    group->addPupil(new Pupil("Sibylle","Mentzel",Person::Gender::FEMALE,"Sibylle Mentzel.jpg",QString(),QString(),QDate(2001,4,26),"05c",0));
-    group->addPupil(new Pupil("Steffen","Niecke",Person::Gender::MALE,"Steffen Niecke.jpg",QString(),QString(),QDate(2000,3,2),"05c",0));
-    group->addPupil(new Pupil("Murat","Öztürk",Person::Gender::MALE,"Murat Oeztuerk.jpg",QString(),QString(),QDate(2000,10,27),"05c",0));
-    group->addPupil(new Pupil("Marie","Pieczonka",Person::Gender::FEMALE,"Marie Pieczonka.jpg",QString(),QString(),QDate(2000,2,12),"05c",0));
-    group->addPupil(new Pupil("Pit","Reining",Person::Gender::MALE,"Pit Reining.jpg",QString(),QString(),QDate(2000,7,20),"05c",0));
-    group->addPupil(new Pupil("Alexander","Richter",Person::Gender::MALE,"Alexander Richter .jpg",QString(),QString(),QDate(2001,4,14),"05c",0));
-    group->addPupil(new Pupil("Sina","Schneemann",Person::Gender::FEMALE,"Sina Schneemann.jpg",QString(),QString(),QDate(2000,9,2),"05c",0));
-    group->addPupil(new Pupil("Anne","Seweringsbeck",Person::Gender::FEMALE,"Anne Seweringsbeck.jpg",QString(),QString(),QDate(1999,11,23),"05c",0));
-    group->addPupil(new Pupil("Benedikt","Terstelen",Person::Gender::MALE,"Benedikt Terstelen.jpg",QString(),QString(),QDate(2000,1,6),"05c",0));
-    group->addPupil(new Pupil("Felix","Van Ophoven",Person::Gender::MALE,"Felix van Ophoven .jpg",QString(),QString(),QDate(1999,11,21),"05c",0));
-    group->addPupil(new Pupil("Heike","Vierseneck",Person::Gender::FEMALE,"Heike Vierseneck.jpg",QString(),QString(),QDate(2000,3,13),"05c",0));
-    group->addPupil(new Pupil("Beatrix","Weber",Person::Gender::FEMALE,"Beatrix Weber.jpg",QString(),QString(),QDate(2000,6,9),"05c",0));
-    group->addPupil(new Pupil("Thomas","Weber",Person::Gender::MALE,"Thomas Weber.jpg",QString(),QString(),QDate(1999,12,20),"05c",0));
-//    group->addPupil(new Pupil("Anna","Webern",Person::Gender::FEMALE,"Anna Webern.jpg",QString(),QString(),QDate(2000,12,7),"05c",0));
-//    group->addPupil(new Pupil("Lara","Bachmann",Person::Gender::FEMALE,"Lara Bachmann.jpg",QString(),QString(),QDate(2000,3,8),"08a",0));
-//    group->addPupil(new Pupil("Sandra","Böhmer",Person::Gender::FEMALE,"_Sandra Boehmer.jpg",QString(),QString(),QDate(2000,3,22),"08a",0));
-//    group->addPupil(new Pupil("Britta","Eschweger",Person::Gender::FEMALE,"Britta Eschweger.jpg",QString(),QString(),QDate(2000,7,10),"08a",0));
-//    group->addPupil(new Pupil("Annike","Gosekamp",Person::Gender::FEMALE,"_Annike Gosekamp.jpg",QString(),QString(),QDate(2000,7,28),"08a",0));
-//    group->addPupil(new Pupil("Katharina","Haarmann",Person::Gender::FEMALE,"Katharina Haarmann.jpg",QString(),QString(),QDate(2000,3,8),"08a",0));
-//    group->addPupil(new Pupil("Sebastian","Hohage",Person::Gender::MALE,"Sebastian Hohage.jpg",QString(),QString(),QDate(2000,5,1),"08a",0));
-//    group->addPupil(new Pupil("Markus","Kerzel",Person::Gender::MALE,"Markus Kerzel.jpg",QString(),QString(),QDate(2000,3,16),"08a",0));
-//    group->addPupil(new Pupil("Henning","König",Person::Gender::MALE,"Henning Koenig.jpg",QString(),QString(),QDate(2000,5,11),"08a",0));
-//    group->addPupil(new Pupil("Sandra","Lehmann",Person::Gender::FEMALE,"Sandra Lehmann.jpg",QString(),QString(),QDate(2000,9,3),"08a",0));
-//    group->addPupil(new Pupil("Yasmin","Lipinski",Person::Gender::FEMALE,"_Yasmin Lipinski .jpg",QString(),QString(),QDate(2000,3,27),"08a",0));
-//    group->addPupil(new Pupil("Jakob","Meilenberg",Person::Gender::MALE,"Jakob Meilenberg.jpg",QString(),QString(),QDate(2000,6,30),"08a",0));
-//    group->addPupil(new Pupil("Benedikt","Meyer",Person::Gender::MALE,"Benedikt Meyer.jpg",QString(),QString(),QDate(1999,12,28),"08a",0));
-//    group->addPupil(new Pupil("Stefan","Müller",Person::Gender::MALE,"Stefan Maier.jpg",QString(),QString(),QDate(2000,5,20),"08a",0));
-//    group->addPupil(new Pupil("Peter","Neumann",Person::Gender::MALE,"Peter Naumann.jpg",QString(),QString(),QDate(2000,5,27),"08a",0));
-//    group->addPupil(new Pupil("Philipp","Quäbicker",Person::Gender::MALE,"Phillip Quaebicker.jpg",QString(),QString(),QDate(2000,8,11),"08a",0));
-//    group->addPupil(new Pupil("Susanne","Regensburger",Person::Gender::FEMALE,"Susanne Regensburger.jpg",QString(),QString(),QDate(2000,8,6),"08a",0));
-//    group->addPupil(new Pupil("Beate","Schmidt",Person::Gender::FEMALE,"beate schmidt.jpg",QString(),QString(),QDate(2000,7,9),"08a",0));
-//    group->addPupil(new Pupil("Lisa","Schmidt",Person::Gender::FEMALE,"_Lisa Schmidt.jpg",QString(),QString(),QDate(1999,10,31),"08a",0));
-//    group->addPupil(new Pupil("Paul","Schmidt",Person::Gender::MALE,"Paul Schmidt.jpg",QString(),QString(),QDate(2000,4,26),"08a",0));
-//    group->addPupil(new Pupil("Tanja","Scholz",Person::Gender::FEMALE,"Tanja Scholz.jpg",QString(),QString(),QDate(2001,1,11),"08a",0));
-//    group->addPupil(new Pupil("Marina","Schulte",Person::Gender::FEMALE,"Marina Schulte.jpg",QString(),QString(),QDate(1999,12,2),"08a",0));
-//    group->addPupil(new Pupil("Kevin","Schulze",Person::Gender::MALE,"Kevin schulze.jpg",QString(),QString(),QDate(1999,2,20),"08a",0));
-//    group->addPupil(new Pupil("Antonia","Schwarz",Person::Gender::FEMALE,"Antonia Schwarz.jpg",QString(),QString(),QDate(1999,7,11),"08a",0));
-//    group->addPupil(new Pupil("Hendrik","Theissen",Person::Gender::MALE,"Hendrik Theissen.jpg",QString(),QString(),QDate(2000,3,11),"08a",0));
-//    group->addPupil(new Pupil("Carsten","Trompeter",Person::Gender::MALE,"Carsten Trompeter.jpg",QString(),QString(),QDate(1998,10,11),"08a",0));
-//    group->addPupil(new Pupil("Julia","Tworuschka",Person::Gender::FEMALE,"Julia Tworuschka.jpg",QString(),QString(),QDate(1999,7,15),"08a",0));
-//    group->addPupil(new Pupil("Sophie","Wedler",Person::Gender::FEMALE,"Sophie Wedler.jpg",QString(),QString(),QDate(2000,2,27),"08a",0));
-//    group->addPupil(new Pupil("Alice","Wellenstein",Person::Gender::FEMALE,"Alice Wellenstein.jpg",QString(),QString(),QDate(2000,11,11),"08a",0));
-//    group->addPupil(new Pupil("Gesa","Werthmann",Person::Gender::FEMALE,"Gesa Werthmann.jpg",QString(),QString(),QDate(2000,7,23),"08a",0));
-//    group->addPupil(new Pupil("Selma","Yildiz",Person::Gender::FEMALE,"_Selma Yildiz.jpg",QString(),QString(),QDate(1998,2,1),"08a",0));
-//    group->addPupil(new Pupil("Barbara","Anklang",Person::Gender::FEMALE,"Barbara Anklang.jpg",QString(),QString(),QDate(1997,12,25),"11",0));
-//    group->addPupil(new Pupil("Martin","Baack",Person::Gender::MALE,"Martin Baack.jpg",QString(),QString(),QDate(1998,1,1),"11",0));
-//    group->addPupil(new Pupil("Martin","Bergmann",Person::Gender::MALE,"Martin Bergmann.jpg",QString(),QString(),QDate(1999,5,29),"11",0));
-//    group->addPupil(new Pupil("Elisabeth","Blauwies",Person::Gender::FEMALE,"Elisabeth Blauwies.jpg",QString(),QString(),QDate(1998,4,9),"11",0));
-//    group->addPupil(new Pupil("Tim","Bösch",Person::Gender::MALE,"Tim Boesch.jpg",QString(),QString(),QDate(1998,9,27),"11",0));
-//    group->addPupil(new Pupil("Frank","Brinkhoff",Person::Gender::MALE,"Frank Brinkhoff.jpg",QString(),QString(),QDate(1998,1,15),"11",0));
-//    group->addPupil(new Pupil("Theresa","Christens",Person::Gender::FEMALE,"Theresa Christens.jpg",QString(),QString(),QDate(1998,3,14),"11",0));
-//    group->addPupil(new Pupil("Silke","Goisern",Person::Gender::FEMALE,"Silke Goisern.jpg",QString(),QString(),QDate(1998,3,15),"11",0));
-//    group->addPupil(new Pupil("Kerstin","Heineberg",Person::Gender::FEMALE,"Kerstin Heinenberg .jpg",QString(),QString(),QDate(1997,10,22),"11",0));
-//    group->addPupil(new Pupil("Jan","Heiner",Person::Gender::MALE,"Jan Heiner.jpg",QString(),QString(),QDate(1997,11,26),"11",0));
-//    group->addPupil(new Pupil("Annika","Henrichs",Person::Gender::FEMALE,"Annika Henrichs.jpg",QString(),QString(),QDate(1998,5,17),"11",0));
-//    group->addPupil(new Pupil("Fritzie","Herbst",Person::Gender::FEMALE,"Fritzie Herbst.jpg",QString(),QString(),QDate(1998,3,14),"11",0));
-//    group->addPupil(new Pupil("Leo","Hirsch",Person::Gender::MALE,"Leo Hirsch.jpg",QString(),QString(),QDate(1997,9,7),"11",0));
-//    group->addPupil(new Pupil("Justus","Markwort",Person::Gender::MALE,"Justus Markwort.jpg",QString(),QString(),QDate(1995,8,4),"11",0));
-//    group->addPupil(new Pupil("Christopher","Mauntz",Person::Gender::MALE,"Christopher Mauntz.jpg",QString(),QString(),QDate(1998,1,13),"11",0));
-//    group->addPupil(new Pupil("Kai","Maurer",Person::Gender::MALE,"Kai Maurer.jpg",QString(),QString(),QDate(1997,12,30),"11",0));
-//    group->addPupil(new Pupil("Florian","Neuhaus",Person::Gender::MALE,"Florian Neuhaus.jpg",QString(),QString(),QDate(1998,5,20),"11",0));
-//    group->addPupil(new Pupil("Sabine","Overkamp",Person::Gender::FEMALE,"Sabine Overkamp.jpg",QString(),QString(),QDate(1998,8,4),"11",0));
-//    group->addPupil(new Pupil("Frank","Paschen",Person::Gender::MALE,"Frank Paschen.jpg",QString(),QString(),QDate(1998,3,17),"11",0));
-//    group->addPupil(new Pupil("Petra","Schubert",Person::Gender::FEMALE,"Petra Schubert.jpg",QString(),QString(),QDate(1994,2,23),"11",0));
-//    group->addPupil(new Pupil("Verena","Schwarz",Person::Gender::FEMALE,"Verena Schwarz.jpg",QString(),QString(),QDate(1993,3,17),"11",0));
-//    group->addPupil(new Pupil("Helge","Stalter",Person::Gender::MALE,"Helge Stalter.jpg",QString(),QString(),QDate(1994,2,6),"11",0));
-//    group->addPupil(new Pupil("Lena","Swarovski",Person::Gender::FEMALE,"Lena Swarovski.jpg",QString(),QString(),QDate(1994,3,22),"11",0));
-
-//    Paths::setCustomPicturePathStatic("resources/");
-//    Paths::setPicturePathStatic("resources/");
-
-    group->pupilAt(0).data()->addAddress(new Address("Erzieher","Bukesweg 473","33330","Gütersloh"));
-    group->pupilAt(1).data()->addAddress(new Address("Erzieher","Bukesweg 473","33330","Gütersloh"));
-    group->pupilAt(2).data()->addAddress(new Address("Erzieher","Bukesweg 473","33330","Gütersloh"));
-    group->pupilAt(3).data()->addAddress(new Address("Erzieher","Bukesweg 473","33330","Gütersloh"));
-    group->pupilAt(4).data()->addAddress(new Address("Erzieher","Bukesweg 473","33330","Gütersloh"));
-    group->pupilAt(5).data()->addAddress(new Address("Erzieher","Auguste-Viktoria-Platz 193","77652","Offenburg"));
-    group->pupilAt(6).data()->addAddress(new Address("Erzieher","Bullenwinkel 467","74074","Heilbronn"));
-    group->pupilAt(7).data()->addAddress(new Address("Erzieher","Schinkelplatz 389","46236","Bottrop"));
-    group->pupilAt(8).data()->addAddress(new Address("Erzieher","Mentzelstraße 327","33617","Bielefeld"));
-    group->pupilAt(9).data()->addAddress(new Address("Erzieher","Bundesallee 252","49082","Osnabrück"));
-    group->pupilAt(10).data()->addAddress(new Address("Erzieher","Schreberplatz 93","33619","Bielefeld"));
-    group->pupilAt(11).data()->addAddress(new Address("Erzieher","Mühltaler Straße 252","45327","Essen"));
-    group->pupilAt(12).data()->addAddress(new Address("Erzieher","Köllnischer Wursthof 49","50996","Köln"));
-    group->pupilAt(13).data()->addAddress(new Address("Erzieher","Spinnpfad 38","40599","Düsseldorf"));
-    group->pupilAt(14).data()->addAddress(new Address("Erzieher","Schießgasse 122","85399","Hallbergmoos"));
-    group->pupilAt(15).data()->addAddress(new Address("Erzieher","Am Wiesenrain 156","69221","Dossenheim"));
-    group->pupilAt(16).data()->addAddress(new Address("Erzieher","Spindlersfelder Straße 201","40593","Düsseldorf"));
-    group->pupilAt(17).data()->addAddress(new Address("Erzieher","Schröderdamm 37","47169","Duisburg"));
-    group->pupilAt(18).data()->addAddress(new Address("Erzieher","Franklinstraße 390","48356","Nordwalde"));
-    group->pupilAt(19).data()->addAddress(new Address("Erzieher","Friedbergstraße 84","10555","Berlin"));
-    group->pupilAt(20).data()->addAddress(new Address("Erzieher","Mandrellaplatz 319","53119","Bonn"));
-    group->pupilAt(21).data()->addAddress(new Address("Erzieher","Müggelwerderweg 489","50823","Köln"));
-    group->pupilAt(22).data()->addAddress(new Address("Erzieher","Stralauer Straße 137","45478","Mülheim"));
-    group->pupilAt(23).data()->addAddress(new Address("Erzieher","Müggellandstraße 101","33611","Bielefeld"));
-    group->pupilAt(24).data()->addAddress(new Address("Erzieher","Müggelbergallee 455","60314","Frankfurt"));
-    group->pupilAt(25).data()->addAddress(new Address("Erzieher","Kirch-Gasse 96","53129","Bonn"));
-    group->pupilAt(26).data()->addAddress(new Address("Erzieher","Buchholzweg 278","51545","Waldbröl"));
-    group->pupilAt(27).data()->addAddress(new Address("Erzieher","Plattnerstraße 287","40233","Düsseldorf"));
-    group->pupilAt(28).data()->addAddress(new Address("Erzieher","Bolivarallee 28","41517","Grevenbroich"));
-    group->pupilAt(29).data()->addAddress(new Address("Erzieher","Große Allee 464","F-75011","Paris"));
-    group->pupilAt(30).data()->addAddress(new Address("Erzieher","Edisonstraße 496","53881","Euskirchen"));
-//    group->pupilAt(31).data()->addAddress(new Address("Erzieher","Erknerstraße 414","82194","Gröbenzell"));
-//    group->pupilAt(32).data()->addAddress(new Address("Erzieher","Friedrichplatz 339","57584","Wallmenroth"));
-//    group->pupilAt(33).data()->addAddress(new Address("Erzieher","Englische Straße 42","22926","Ahrensburg"));
-//    group->pupilAt(34).data()->addAddress(new Address("Erzieher","Oettingstraße 491","82140","Olching"));
-//    group->pupilAt(35).data()->addAddress(new Address("Erzieher","Erpetaler Weg 285","46519","Alpen"));
-//    group->pupilAt(36).data()->addAddress(new Address("Erzieher","Spreestraße 91","40235","Düsseldorf"));
-//    group->pupilAt(37).data()->addAddress(new Address("Erzieher","Carmerstraße 233","46397","Bocholt"));
-//    group->pupilAt(38).data()->addAddress(new Address("Erzieher","Emmy-Zehden-Weg 460","10435","Berlin"));
-//    group->pupilAt(39).data()->addAddress(new Address("Erzieher","Stubenrauchstraße 216","40210","Düsseldorf"));
-//    group->pupilAt(40).data()->addAddress(new Address("Erzieher","Kalkscheunenquergasse 210","46395","Bocholt"));
-//    group->pupilAt(41).data()->addAddress(new Address("Erzieher","Seestraße 430","59302","Oelde"));
-//    group->pupilAt(42).data()->addAddress(new Address("Erzieher","Amselhorst 257","60313","Frankfurt"));
-//    group->pupilAt(43).data()->addAddress(new Address("Erzieher","Nobels Hof 383","95326","Kulmbach"));
-//    group->pupilAt(44).data()->addAddress(new Address("Erzieher","Luisenstraße 375","45259","Essen"));
-//    group->pupilAt(45).data()->addAddress(new Address("Erzieher","Müllroser Straße 371","33428","Harsewinkel"));
-//    group->pupilAt(46).data()->addAddress(new Address("Erzieher","Bismarckstraße 251","24103","Kiel"));
-//    group->pupilAt(47).data()->addAddress(new Address("Erzieher","Militscher Weg 222","59077","Hamm"));
-//    group->pupilAt(48).data()->addAddress(new Address("Erzieher","Kleine Burgstraße 211","24111","Kiel"));
-//    group->pupilAt(49).data()->addAddress(new Address("Erzieher","Kirchgasse 166","47166","Duisburg"));
-//    group->pupilAt(50).data()->addAddress(new Address("Erzieher","Am Postfenn 448","81825","München"));
-//    group->pupilAt(51).data()->addAddress(new Address("Erzieher","Breite Straße 227","80993","München"));
-//    group->pupilAt(52).data()->addAddress(new Address("Erzieher","Gustloffstraße 292","45896","Gelsenkirchen"));
-//    group->pupilAt(53).data()->addAddress(new Address("Erzieher","Am Salzufer beim Speicher 10","53842","Troisdorf"));
-//    group->pupilAt(54).data()->addAddress(new Address("Erzieher","Strandweg 13","46359","Heiden"));
-//    group->pupilAt(55).data()->addAddress(new Address("Erzieher","Dickensweg 269","45899","Gelsenkirchen"));
-//    group->pupilAt(56).data()->addAddress(new Address("Erzieher","Birkweilerstraße 258","42389","Wuppertal"));
-//    group->pupilAt(57).data()->addAddress(new Address("Erzieher","Luisenplatz 33","48153","Münster"));
-//    group->pupilAt(58).data()->addAddress(new Address("Erzieher","Am Volkshaus 242","60529","Frankfurt"));
-//    group->pupilAt(59).data()->addAddress(new Address("Erzieher","Adlershofer Straße 357","37671","Höxter"));
-//    group->pupilAt(60).data()->addAddress(new Address("Erzieher","Semliner Straße 463","10245","Berlin"));
-//    group->pupilAt(61).data()->addAddress(new Address("Erzieher","Kirchplatz 254","76149","Karlsruhe"));
-//    group->pupilAt(62).data()->addAddress(new Address("Erzieher","Straße nach Fichtenau 408","52457","Aldenhoven"));
-//    group->pupilAt(63).data()->addAddress(new Address("Erzieher","Schützengasse 497","73460","Hüttlingen"));
-//    group->pupilAt(64).data()->addAddress(new Address("Erzieher","Bismarckstraße 194","28209","Bremen"));
-//    group->pupilAt(65).data()->addAddress(new Address("Erzieher","Am Bahnhof Jungfernheide 227","57299","Burbach"));
-//    group->pupilAt(66).data()->addAddress(new Address("Erzieher","Epiphanienweg 219","45149","Essen"));
-//    group->pupilAt(67).data()->addAddress(new Address("Erzieher","Scharnhorststraße 238","91054","Erlangen"));
-//    group->pupilAt(68).data()->addAddress(new Address("Erzieher","Baderseestraße 492","42899","Remscheid"));
-//    group->pupilAt(69).data()->addAddress(new Address("Erzieher","Enkenbacher Weg 473","53179","Bonn"));
-//    group->pupilAt(70).data()->addAddress(new Address("Erzieher","Siefersheimer Straße 379","50226","Frechen"));
-//    group->pupilAt(71).data()->addAddress(new Address("Erzieher","Gutsmuthsweg 197","59955","Winterberg"));
-//    group->pupilAt(72).data()->addAddress(new Address("Erzieher","Beutenweg 316","42329","Wuppertal"));
-//    group->pupilAt(73).data()->addAddress(new Address("Erzieher","Fahlenbergstraße 244","50667","Köln"));
-//    group->pupilAt(74).data()->addAddress(new Address("Erzieher","Cauerstraße 171","41068","Mönchengladbach"));
-//    group->pupilAt(75).data()->addAddress(new Address("Erzieher","Eichkatzweg 263","10999","Berlin"));
-//    group->pupilAt(76).data()->addAddress(new Address("Erzieher","Fasanenstraße 83","34127","Kassel"));
-//    group->pupilAt(77).data()->addAddress(new Address("Erzieher","Augsburger Straße 397","41748","Viersen"));
-//    group->pupilAt(78).data()->addAddress(new Address("Erzieher","Erlengrund 240","22393","Hamburg"));
-//    group->pupilAt(79).data()->addAddress(new Address("Erzieher","Müggelschlößchenweg 111","90762","Fürth"));
-//    group->pupilAt(80).data()->addAddress(new Address("Erzieher","Rautendeleinweg 233","60322","Frankfurt"));
-//    group->pupilAt(81).data()->addAddress(new Address("Erzieher","Plattnerstraße 448","33611","Bielefeld"));
-//    group->pupilAt(82).data()->addAddress(new Address("Erzieher","Falkendamm 174","44532","Lünen"));
-//    group->pupilAt(83).data()->addAddress(new Address("Erzieher","Beutenweg 46","40233","Düsseldorf"));
-//    group->pupilAt(84).data()->addAddress(new Address("Erzieher","Grolmanstraße 21","42105","Wuppertal"));
 
-    group->pupilAt(0).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-474466"));
-    group->pupilAt(1).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-474466"));
-    group->pupilAt(2).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-474466"));
-    group->pupilAt(3).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-474466"));
-    group->pupilAt(4).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-474466"));
-    group->pupilAt(5).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-340678"));
-    group->pupilAt(6).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-697259"));
-    group->pupilAt(7).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-893457"));
-    group->pupilAt(8).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-329887"));
-    group->pupilAt(9).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-929597"));
-    group->pupilAt(10).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-796732"));
-    group->pupilAt(11).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-546859"));
-    group->pupilAt(12).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-595620"));
-    group->pupilAt(13).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-866276"));
-    group->pupilAt(14).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-460017"));
-    group->pupilAt(15).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-482789"));
-    group->pupilAt(16).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-572497"));
-    group->pupilAt(17).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-778335"));
-    group->pupilAt(18).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-373357"));
-    group->pupilAt(19).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-141325"));
-    group->pupilAt(20).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-479624"));
-    group->pupilAt(21).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-181349"));
-    group->pupilAt(22).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-292118"));
-    group->pupilAt(23).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-835081"));
-    group->pupilAt(24).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-177756"));
-    group->pupilAt(25).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-744508"));
-    group->pupilAt(26).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-966629"));
-    group->pupilAt(27).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-310955"));
-    group->pupilAt(28).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-557452"));
-    group->pupilAt(29).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-822892"));
-    group->pupilAt(30).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-146895"));
-//    group->pupilAt(31).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-140179"));
-//    group->pupilAt(32).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-748715"));
-//    group->pupilAt(33).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-511395"));
-//    group->pupilAt(34).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-451487"));
-//    group->pupilAt(35).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-427073"));
-//    group->pupilAt(36).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-636559"));
-//    group->pupilAt(37).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-952210"));
-//    group->pupilAt(38).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-273424"));
-//    group->pupilAt(39).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-371440"));
-//    group->pupilAt(40).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-620761"));
-//    group->pupilAt(41).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-976994"));
-//    group->pupilAt(42).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-884805"));
-//    group->pupilAt(43).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-664649"));
-//    group->pupilAt(44).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-860288"));
-//    group->pupilAt(45).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-756263"));
-//    group->pupilAt(46).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-471363"));
-//    group->pupilAt(47).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-381769"));
-//    group->pupilAt(48).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-449971"));
-//    group->pupilAt(49).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-167298"));
-//    group->pupilAt(50).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-125506"));
-//    group->pupilAt(51).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-295468"));
-//    group->pupilAt(52).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-288429"));
-//    group->pupilAt(53).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-838009"));
-//    group->pupilAt(54).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-460820"));
-//    group->pupilAt(55).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-280847"));
-//    group->pupilAt(56).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-864574"));
-//    group->pupilAt(57).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-496047"));
-//    group->pupilAt(58).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-448370"));
-//    group->pupilAt(59).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-371203"));
-//    group->pupilAt(60).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-395222"));
-//    group->pupilAt(61).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-984187"));
-//    group->pupilAt(62).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-726034"));
-//    group->pupilAt(63).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-848504"));
-//    group->pupilAt(64).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-384888"));
-//    group->pupilAt(65).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-816536"));
-//    group->pupilAt(66).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-959895"));
-//    group->pupilAt(67).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-805634"));
-//    group->pupilAt(68).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-884150"));
-//    group->pupilAt(69).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-614509"));
-//    group->pupilAt(70).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-204527"));
-//    group->pupilAt(71).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-936177"));
-//    group->pupilAt(72).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-851124"));
-//    group->pupilAt(73).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-780272"));
-//    group->pupilAt(74).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-193218"));
-//    group->pupilAt(75).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-863423"));
-//    group->pupilAt(76).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-505932"));
-//    group->pupilAt(77).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-193988"));
-//    group->pupilAt(78).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-284261"));
-//    group->pupilAt(79).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-354793"));
-//    group->pupilAt(80).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-150300"));
-//    group->pupilAt(81).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-935449"));
-//    group->pupilAt(82).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-241454"));
-//    group->pupilAt(83).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-263433"));
-//    group->pupilAt(84).data()->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-942203"));
+    group->pupilAt(0)->addAddress(new Address("Erzieher","Bukesweg 473","33330","Gütersloh"));
+    group->pupilAt(1)->addAddress(new Address("Erzieher","Bukesweg 473","33330","Gütersloh"));
+    group->pupilAt(2)->addAddress(new Address("Erzieher","Bukesweg 473","33330","Gütersloh"));
+    group->pupilAt(3)->addAddress(new Address("Erzieher","Bukesweg 473","33330","Gütersloh"));
+    group->pupilAt(4)->addAddress(new Address("Erzieher","Bukesweg 473","33330","Gütersloh"));
+    group->pupilAt(5)->addAddress(new Address("Erzieher","Auguste-Viktoria-Platz 193","77652","Offenburg"));
+    group->pupilAt(6)->addAddress(new Address("Erzieher","Bullenwinkel 467","74074","Heilbronn"));
+    group->pupilAt(7)->addAddress(new Address("Erzieher","Schinkelplatz 389","46236","Bottrop"));
+    group->pupilAt(8)->addAddress(new Address("Erzieher","Mentzelstraße 327","33617","Bielefeld"));
+    group->pupilAt(9)->addAddress(new Address("Erzieher","Bundesallee 252","49082","Osnabrück"));
 
-    group->pupilAt(0).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-755490"));
-    group->pupilAt(1).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-755490"));
-    group->pupilAt(2).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-755490"));
-    group->pupilAt(3).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-755490"));
-    group->pupilAt(4).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-755490"));
-    group->pupilAt(5).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-791688"));
-    group->pupilAt(6).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-837199"));
-    group->pupilAt(7).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-194122"));
-    group->pupilAt(8).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-145996"));
-    group->pupilAt(9).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-446435"));
-    group->pupilAt(10).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-777240"));
-    group->pupilAt(11).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-957984"));
-    group->pupilAt(12).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-959035"));
-    group->pupilAt(13).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-646996"));
-    group->pupilAt(14).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-754644"));
-    group->pupilAt(15).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-691871"));
-    group->pupilAt(16).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-606116"));
-    group->pupilAt(17).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-560258"));
-    group->pupilAt(18).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-725004"));
-    group->pupilAt(19).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-836000"));
-    group->pupilAt(20).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-501271"));
-    group->pupilAt(21).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-495368"));
-    group->pupilAt(22).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-833977"));
-    group->pupilAt(23).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-999205"));
-    group->pupilAt(24).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-496463"));
-    group->pupilAt(25).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-901833"));
-    group->pupilAt(26).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-836660"));
-    group->pupilAt(27).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-565273"));
-    group->pupilAt(28).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-334976"));
-    group->pupilAt(29).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-586964"));
-    group->pupilAt(30).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-669576"));
-//    group->pupilAt(31).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-931698"));
-//    group->pupilAt(32).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-968447"));
-//    group->pupilAt(33).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-576603"));
-//    group->pupilAt(34).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-331963"));
-//    group->pupilAt(35).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-122682"));
-//    group->pupilAt(36).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-582439"));
-//    group->pupilAt(37).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-930372"));
-//    group->pupilAt(38).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-812512"));
-//    group->pupilAt(39).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-432765"));
-//    group->pupilAt(40).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-443758"));
-//    group->pupilAt(41).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-696010"));
-//    group->pupilAt(42).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-493309"));
-//    group->pupilAt(43).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-470076"));
-//    group->pupilAt(44).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-284998"));
-//    group->pupilAt(45).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-619313"));
-//    group->pupilAt(46).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-922854"));
-//    group->pupilAt(47).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-610450"));
-//    group->pupilAt(48).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-593422"));
-//    group->pupilAt(49).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-378564"));
-//    group->pupilAt(50).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-311956"));
-//    group->pupilAt(51).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-645321"));
-//    group->pupilAt(52).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-305341"));
-//    group->pupilAt(53).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-708486"));
-//    group->pupilAt(54).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-943784"));
-//    group->pupilAt(55).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-855304"));
-//    group->pupilAt(56).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-524665"));
-//    group->pupilAt(57).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-629998"));
-//    group->pupilAt(58).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-803833"));
-//    group->pupilAt(59).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-568313"));
-//    group->pupilAt(60).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-472579"));
-//    group->pupilAt(61).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-453570"));
-//    group->pupilAt(62).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-779747"));
-//    group->pupilAt(63).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-959740"));
-//    group->pupilAt(64).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-791460"));
-//    group->pupilAt(65).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-852067"));
-//    group->pupilAt(66).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-137234"));
-//    group->pupilAt(67).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-245563"));
-//    group->pupilAt(68).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-103207"));
-//    group->pupilAt(69).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-376089"));
-//    group->pupilAt(70).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-551473"));
-//    group->pupilAt(71).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-928563"));
-//    group->pupilAt(72).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-268328"));
-//    group->pupilAt(73).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-771549"));
-//    group->pupilAt(74).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-776219"));
-//    group->pupilAt(75).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-581444"));
-//    group->pupilAt(76).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-100392"));
-//    group->pupilAt(77).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-267220"));
-//    group->pupilAt(78).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-333075"));
-//    group->pupilAt(79).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-746235"));
-//    group->pupilAt(80).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-695127"));
-//    group->pupilAt(81).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-231127"));
-//    group->pupilAt(82).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-992639"));
-//    group->pupilAt(83).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-334154"));
-//    group->pupilAt(84).data()->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-100465"));
+    group->pupilAt(0)->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-474466"));
+    group->pupilAt(1)->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-474466"));
+    group->pupilAt(2)->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-474466"));
+    group->pupilAt(3)->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-474466"));
+    group->pupilAt(4)->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-474466"));
+    group->pupilAt(5)->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-340678"));
+    group->pupilAt(6)->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-697259"));
+    group->pupilAt(7)->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-893457"));
+    group->pupilAt(8)->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-329887"));
+    group->pupilAt(9)->addContact(new Contact("Telefon 1",Contact::Category::LANDLINE,"01234-929597"));
 
-    group->pupilAt(0).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"TimmieB@smail.de_"));
-    group->pupilAt(1).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"lenalenalena3@smail.de_"));
-    group->pupilAt(2).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"marcel.dunst111@smail.de_"));
-    group->pupilAt(3).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"cernst@smail.de_"));
-    group->pupilAt(4).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"hannahsemail@smail.de_"));
-    group->pupilAt(5).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"vrgsk@smail.de_"));
-    group->pupilAt(6).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"hagedornjann@smail.de_"));
-    group->pupilAt(7).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"svenja_H@smail.de_"));
-    group->pupilAt(8).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"dertimohatmail@smail.de_"));
-    group->pupilAt(9).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"birthe-hunter@smail.de_"));
-    group->pupilAt(10).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"thor-ben@smail.de_"));
-    group->pupilAt(11).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"kaiserin_julia@smail.de_"));
-    group->pupilAt(12).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"dinikersting@smail.de_"));
-    group->pupilAt(13).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"rieke1234567@smail.de_"));
-    group->pupilAt(14).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"koellerkollerkiller@smail.de_"));
-    group->pupilAt(15).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"mara-longmountain@smail.de_"));
-    group->pupilAt(16).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"stefanowitschm@smail.de_"));
-    group->pupilAt(17).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"danameerkatze@smail.de_"));
-    group->pupilAt(18).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"BillieMentzel@smail.de_"));
-    group->pupilAt(19).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"steffenNIE@smail.de_"));
-    group->pupilAt(20).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"MuratÖzgür@smail.de_"));
-    group->pupilAt(21).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"MariechenPieczo@smail.de_"));
-    group->pupilAt(22).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"pit-cleaning@smail.de_"));
-    group->pupilAt(23).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"richter_alex1111@smail.de_"));
-    group->pupilAt(24).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"schneefrau@smail.de_"));
-    group->pupilAt(25).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"anne.seweringsbeck@smail.de_"));
-    group->pupilAt(26).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"benedikt_terstelen@smail.de_"));
-    group->pupilAt(27).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"happyfromophoven@smail.de_"));
-    group->pupilAt(28).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Heike.Vierseneck@smail.de_"));
-    group->pupilAt(29).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"BeaWeberNEU@smail.de_"));
-    group->pupilAt(30).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"ThomasWeberThomasWeber@smail.de_"));
-//    group->pupilAt(31).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"BellaAnnaWebern99@smail.de_"));
-//    group->pupilAt(32).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Larabach@smail.de_"));
-//    group->pupilAt(33).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Sboehmer@smail.de_"));
-//    group->pupilAt(34).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"BrEs@smail.de_"));
-//    group->pupilAt(35).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Annik-Gose@smail.de_"));
-//    group->pupilAt(36).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Kat_Haarmann@smail.de_"));
-//    group->pupilAt(37).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"SebiHohi2000@smail.de_"));
-//    group->pupilAt(38).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Kerzel.M@smail.de_"));
-//    group->pupilAt(39).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Hennig-the-King@smail.de_"));
-//    group->pupilAt(40).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"SandyLeh@smail.de_"));
-//    group->pupilAt(41).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Yasmin-Lipinski@smail.de_"));
-//    group->pupilAt(42).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"7-Meilen-Jakob@smail.de_"));
-//    group->pupilAt(43).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Big_Benny@smail.de_"));
-//    group->pupilAt(44).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Stefan.Mueller13@smail.de_"));
-//    group->pupilAt(45).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"PeterPanNeu@smail.de_"));
-//    group->pupilAt(46).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Quaebicker.Phil@smail.de_"));
-//    group->pupilAt(47).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Susi_Spielmacher@smail.de_"));
-//    group->pupilAt(48).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Schmidtty-Bea00@smail.de_"));
-//    group->pupilAt(49).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"MrsNeunmalklug@smail.de_"));
-//    group->pupilAt(50).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Paul.S.99@smail.de_"));
-//    group->pupilAt(51).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Scholz_Tanja_2@smail.de_"));
-//    group->pupilAt(52).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Meeresschulte99@smail.de_"));
-//    group->pupilAt(53).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Kev.Cool-13@smail.de_"));
-//    group->pupilAt(54).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"BlackAntony@smail.de_"));
-//    group->pupilAt(55).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Hendrik-Theissen-Jr@smail.de_"));
-//    group->pupilAt(56).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Carsten-Trumpet5@smail.de_"));
-//    group->pupilAt(57).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Julia.Tworuschka@smail.de_"));
-//    group->pupilAt(58).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"SophiesWelt2000@smial.de_"));
-//    group->pupilAt(59).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Alice-Wavestone@smail.de_"));
-//    group->pupilAt(60).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Leiden-der-jungen-Gesa@smail.de_"));
-//    group->pupilAt(61).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Selma-Yildiz13@smail.de_"));
-//    group->pupilAt(62).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Barbara-at-Sound@smail.de_"));
-//    group->pupilAt(63).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Baak.M.1234@smail.de_"));
-//    group->pupilAt(64).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Martin.Bergmann@smail.de_"));
-//    group->pupilAt(65).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"EinsteinElli@smail.de_"));
-//    group->pupilAt(66).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Ti-Boe@smail.de_"));
-//    group->pupilAt(67).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Zum-Wohl-Frank@smail.de_"));
-//    group->pupilAt(68).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Holy-Theresa@smail.de_"));
-//    group->pupilAt(69).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Silke.Goisern96@smail.de_"));
-//    group->pupilAt(70).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Kerstin_Heini@smail.de_"));
-//    group->pupilAt(71).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Jan-the-brain@smail.de_"));
-//    group->pupilAt(72).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Annika.Henrichs12@smail.de_"));
-//    group->pupilAt(73).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Fritzie-Coke@smail.de_"));
-//    group->pupilAt(74).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Hirsch-heisst-er@smail.de_"));
-//    group->pupilAt(75).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Just_Mark_Word@smail.de_"));
-//    group->pupilAt(76).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Chriscat95@smail.de_"));
-//    group->pupilAt(77).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Kai-Maurer-415@smail.de_"));
-//    group->pupilAt(78).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Neuhaus-1645@smail.de_"));
-//    group->pupilAt(79).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Sabine.Overkamp2@smail.de_"));
-//    group->pupilAt(80).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"PaschFrank@smail.de_"));
-//    group->pupilAt(81).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Petras_Winterreise@smail.de_"));
-//    group->pupilAt(82).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"BlackMamba5@smail.de_"));
-//    group->pupilAt(83).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Helges-Jazzclub@smail.de_"));
-//    group->pupilAt(84).data()->addContact(new Contact("Email",Contact::Category::EMAIL,"Swarovski.Lena4@smail.de_"));
+    group->pupilAt(0)->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-755490"));
+    group->pupilAt(1)->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-755490"));
+    group->pupilAt(2)->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-755490"));
+    group->pupilAt(3)->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-755490"));
+    group->pupilAt(4)->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-755490"));
+    group->pupilAt(5)->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-791688"));
+    group->pupilAt(6)->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-837199"));
+    group->pupilAt(7)->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-194122"));
+    group->pupilAt(8)->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-145996"));
+    group->pupilAt(9)->addContact(new Contact("Telefon 2",Contact::Category::LANDLINE,"01234-446435"));
 
+    group->pupilAt(0)->addContact(new Contact("Email",Contact::Category::EMAIL,"TimmieB@smail.de_"));
+    group->pupilAt(1)->addContact(new Contact("Email",Contact::Category::EMAIL,"lenalenalena3@smail.de_"));
+    group->pupilAt(2)->addContact(new Contact("Email",Contact::Category::EMAIL,"marcel.dunst111@smail.de_"));
+    group->pupilAt(3)->addContact(new Contact("Email",Contact::Category::EMAIL,"cernst@smail.de_"));
+    group->pupilAt(4)->addContact(new Contact("Email",Contact::Category::EMAIL,"hannahsemail@smail.de_"));
+    group->pupilAt(5)->addContact(new Contact("Email",Contact::Category::EMAIL,"vrgsk@smail.de_"));
+    group->pupilAt(6)->addContact(new Contact("Email",Contact::Category::EMAIL,"hagedornjann@smail.de_"));
+    group->pupilAt(7)->addContact(new Contact("Email",Contact::Category::EMAIL,"svenja_H@smail.de_"));
+    group->pupilAt(8)->addContact(new Contact("Email",Contact::Category::EMAIL,"dertimohatmail@smail.de_"));
+    group->pupilAt(9)->addContact(new Contact("Email",Contact::Category::EMAIL,"birthe-hunter@smail.de_"));
 
-    group->pupilAt(0).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"info@berg-immobilien.com_"));
-    group->pupilAt(1).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"ClemensundAnja@DieConrads.de_"));
-    group->pupilAt(2).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"sales@dunst-aufzuege.de_"));
-    group->pupilAt(3).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"FamilieErnst@smail.de_"));
-    group->pupilAt(4).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"juergen.eschborn@smail.de_"));
-    group->pupilAt(5).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Britta_Geseke@smail.de_"));
-    group->pupilAt(6).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"familie@hagedorns.de_"));
-    group->pupilAt(7).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"hartmaenner@smail.de_"));
-    group->pupilAt(8).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Marco.Haufer@email.de_"));
-    group->pupilAt(9).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"aufzumfroehlichenjagen@email.de_"));
-    group->pupilAt(10).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"hwerdka@smail.de_"));
-    group->pupilAt(11).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"HalloHerrKaiser@smail.de_"));
-    group->pupilAt(12).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Kersting.Ute@smail.de_"));
-    group->pupilAt(13).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Kerzels@smail.de_"));
-    group->pupilAt(14).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"vera-koeller@smail.de_"));
-    group->pupilAt(15).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Sebastian.Langenberg@smail.de_"));
-    group->pupilAt(16).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Sabine_Maier_69@smail.de_"));
-    group->pupilAt(17).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"paul@familiemeerkat.de_"));
-    group->pupilAt(18).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"berndmentzel@smail.de_"));
-    group->pupilAt(19).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Ruediger_Niecke@smail.de_"));
-    group->pupilAt(20).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"OgulcanOeztuerk@smail.com.tk_"));
-    group->pupilAt(21).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"sales@beckertransporte.de_"));
-    group->pupilAt(22).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"mail@reining-tv.de_"));
-    group->pupilAt(23).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"GeroRichter@smail.de_"));
-    group->pupilAt(24).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"dieschneemaenner@smail.de_"));
-    group->pupilAt(25).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"familie@seweringsbeck.de_"));
-    group->pupilAt(26).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"terstelen@deinebank.de_"));
-    group->pupilAt(27).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"vanophovencarla@smail.de_"));
-    group->pupilAt(28).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"elternvonheike@smail.de_"));
-    group->pupilAt(29).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"WeberKnechte@smail.de_"));
-    group->pupilAt(30).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"WeberKnechte@smail.de_"));
-//    group->pupilAt(31).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"webern@elternmail.de_"));
-//    group->pupilAt(32).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Heiner.Bachmann@smail.de_"));
-//    group->pupilAt(33).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"L.Boehmer-Kapitza@smail.de_"));
-//    group->pupilAt(34).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Annette.Eschweger@smail.de_"));
-//    group->pupilAt(35).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Heiner.Gosekamp@smail.de_"));
-//    group->pupilAt(36).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"H@Haarmann.de_"));
-//    group->pupilAt(37).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"K.Hohage@smail.de_"));
-//    group->pupilAt(38).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"KaiKerzel@smail.de_"));
-//    group->pupilAt(39).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Maraike@FIrmaKoenig.de_"));
-//    group->pupilAt(40).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Kontakt@Lehmann-industries.de_"));
-//    group->pupilAt(41).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Silke_Lipinski@Stadtnet.de_"));
-//    group->pupilAt(42).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"HeikeUndWalter.Ernst@smail.de_"));
-//    group->pupilAt(43).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Klaus_Meyer@smail.de_"));
-//    group->pupilAt(44).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Support@MusikMueller.de_"));
-//    group->pupilAt(45).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Karin.Neumann@smail.de_"));
-//    group->pupilAt(46).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Bernd_Quäbicker@smail.de_"));
-//    group->pupilAt(47).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"FamilieRegensburger@smail.de_"));
-//    group->pupilAt(48).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Daphne-Schmidt@smail.de_"));
-//    group->pupilAt(49).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Info@KaisersLaden.de_"));
-//    group->pupilAt(50).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"ElenoreSchmidt2@smail.de_"));
-//    group->pupilAt(51).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"TanjasEltern@smail.de_"));
-//    group->pupilAt(52).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Schulte@SchulteGmbH-Co-KG.de_"));
-//    group->pupilAt(53).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,""));
-//    group->pupilAt(54).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"SchwarzWeiss@smail.de_"));
-//    group->pupilAt(55).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Hendrik-Theissen-Sr@smail.de_"));
-//    group->pupilAt(56).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Kurt@Instrumentenbau.de_"));
-//    group->pupilAt(57).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"S.K.Tworuschka@smail.de_"));
-//    group->pupilAt(58).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"HeinkeUndKarlWedler@smail.de_"));
-//    group->pupilAt(59).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Wellenstein@Wellenstein.net_"));
-//    group->pupilAt(60).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Dagma.Werthmann@smail.de_"));
-//    group->pupilAt(61).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"K@Yildiz-Industries.com_"));
-//    group->pupilAt(62).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Beate_Anklang4@smail.de_"));
-//    group->pupilAt(63).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"FamilieBaack@smail.de_"));
-//    group->pupilAt(64).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Katharina_Bergmann@smail.de_"));
-//    group->pupilAt(65).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Vorstand@Blauwies-Entertainment.de_"));
-//    group->pupilAt(66).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Ehepaar_Boesch@smail.de_"));
-//    group->pupilAt(67).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"DiethelmBrinkhoff@smail.de_"));
-//    group->pupilAt(68).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Kai.Christens-Lachmacher@smail.de_"));
-//    group->pupilAt(69).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Salome-Goisern@smail.de_"));
-//    group->pupilAt(70).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"HeinebergFamilie@smail.de_"));
-//    group->pupilAt(71).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Kurt@HeinerVerlag.de_"));
-//    group->pupilAt(72).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Dorothea_Henrichs@smail.de_"));
-//    group->pupilAt(73).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Herbstsaison@smail.de_"));
-//    group->pupilAt(74).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"GieselaHirsch@Hirsch.de_"));
-//    group->pupilAt(75).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,""));
-//    group->pupilAt(76).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Kathrin.Mauntz-Wirting@smail.de_"));
-//    group->pupilAt(77).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Maurer@Hausbau.de_"));
-//    group->pupilAt(78).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Isabell_Neuhaus@smail.de_"));
-//    group->pupilAt(79).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Overkamp@Overkamp.de_"));
-//    group->pupilAt(80).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"NilsUndBarbaraPaschen@smail.de_"));
-//    group->pupilAt(81).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Schubert@Boosey-and-Klawkes.de_"));
-//    group->pupilAt(82).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"IngoSchwarz@smail.de_"));
-//    group->pupilAt(83).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"SE@Stalter-Verkauf.net_"));
-//    group->pupilAt(84).data()->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Glitzerndes@Swarovski.net_"));
+    group->pupilAt(0)->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"info@berg-immobilien.com_"));
+    group->pupilAt(1)->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"ClemensundAnja@DieConrads.de_"));
+    group->pupilAt(2)->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"sales@dunst-aufzuege.de_"));
+    group->pupilAt(3)->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"FamilieErnst@smail.de_"));
+    group->pupilAt(4)->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"juergen.eschborn@smail.de_"));
+    group->pupilAt(5)->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Britta_Geseke@smail.de_"));
+    group->pupilAt(6)->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"familie@hagedorns.de_"));
+    group->pupilAt(7)->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"hartmaenner@smail.de_"));
+    group->pupilAt(8)->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"Marco.Haufer@email.de_"));
+    group->pupilAt(9)->addContact(new Contact("Email Eltern",Contact::Category::EMAIL,"aufzumfroehlichenjagen@email.de_"));
 }
diff --git a/samples/example/models/pupil.cpp b/samples/example/models/pupil.cpp
index b98bb2d..b01b9e7 100644
--- a/samples/example/models/pupil.cpp
+++ b/samples/example/models/pupil.cpp
@@ -34,6 +34,3 @@ const QHash<QString, Relation> Pupil::getRelations() const {
                 QString("pupils")));
     return hash;
 }
-
-
-
diff --git a/src/database.cpp b/src/database.cpp
index b871be1..21d535b 100644
--- a/src/database.cpp
+++ b/src/database.cpp
@@ -19,17 +19,19 @@
 #include <QDir>
 using namespace CuteEntityManager;
 
-Database::Database(QSqlDatabase database, bool loggerActivated, bool logQueries, bool logErrors) {
+Database::Database(QSqlDatabase database, bool loggerActivated, bool logQueries,
+                   bool logErrors) {
     this->database = database;
     this->init();
     this->connectionName = this->database.connectionName();
-    this->initLogger(loggerActivated,logQueries,logErrors);
+    this->initLogger(loggerActivated, logQueries, logErrors);
 }
 
 Database::Database(QString databaseType, QString connectionName,
                    QString hostname,
                    QString databasename,
-                   QString username, QString password, qint64 port, bool loggerActivated, bool logQueries, bool logErrors) {
+                   QString username, QString password, qint64 port, bool loggerActivated,
+                   bool logQueries, bool logErrors) {
     this->database = QSqlDatabase::addDatabase(databaseType, connectionName);
     this->connectionName = connectionName;
     if (hostname != QString("")) {
@@ -48,27 +50,28 @@ Database::Database(QString databaseType, QString connectionName,
         this->database.setPort(port);
     }
     this->init();
-    this->initLogger(loggerActivated,logQueries,logErrors);
+    this->initLogger(loggerActivated, logQueries, logErrors);
 }
 
 void Database::init() {
     this->database.open();
     this->supportTransactions = this->database.driver()->hasFeature(
-                QSqlDriver::Transactions);
+                                    QSqlDriver::Transactions);
 }
 
 void Database::initLogger(bool activated, bool logQueries, bool logErrors) {
     this->logQueries = logQueries;
     this->logErrors = logErrors;
-    if(activated) {
-        this->logger = new Logger(QDir::currentPath() + "/db" + this->connectionName + "db.log");
+    if (activated) {
+        this->logger = new Logger(QDir::currentPath() + "/db" + this->connectionName +
+                                  ".log");
     }
 }
 
 Database::~Database() {
-    if(this->logger) {
-    delete this->logger;
-    this->logger = nullptr;
+    if (this->logger) {
+        delete this->logger;
+        this->logger = nullptr;
     }
     if (this->database.isOpen()) {
         this->database.close();
@@ -138,17 +141,17 @@ DatabaseType Database::getDatabaseType(QString s) {
 }
 
 QSharedPointer<Schema> Database::getSchema(DatabaseType db,
-                                           QSharedPointer<Database> database) {
+        QSharedPointer<Database> database) {
     switch (db) {
     case DatabaseType::SQLITE:
         return QSharedPointer<Schema>(new SqliteSchema(database));;
         break;
-        //    case PGSQL:
-        //        return QSharedPointer<Schema>(new PgSqlSchema());
-        //        break;
-        //    case MYSQL:
-        //        return QSharedPointer<Schema>(new MysqlSchema());
-        //        break;
+    //    case PGSQL:
+    //        return QSharedPointer<Schema>(new PgSqlSchema());
+    //        break;
+    //    case MYSQL:
+    //        return QSharedPointer<Schema>(new MysqlSchema());
+    //        break;
     default:
         return QSharedPointer<Schema>(new SqliteSchema(database));
         break;
@@ -196,10 +199,8 @@ bool Database::exec(QList<QSqlQuery> queries) {
 }
 
 void Database::debugQuery(const QSqlQuery &query) const {
-    if(this->logger) {
-        if(this->logErrors) {
-            this->logger->lastError(query,this->logQueries);
-        }
+    if (this->logger && this->logErrors) {
+        this->logger->lastError(query, this->logQueries);
     } else {
         qDebug() << query.executedQuery();
     }
diff --git a/src/database.h b/src/database.h
index 393c5d6..78de5da 100644
--- a/src/database.h
+++ b/src/database.h
@@ -40,13 +40,15 @@ class Database {
     bool logErrors;
 
   public:
-    Database(QSqlDatabase database, bool loggerActivated = true, bool logQueries=false, bool logErrors=true);
+    Database(QSqlDatabase database, bool loggerActivated = true,
+             bool logQueries = false, bool logErrors = true);
     ~Database();
     Database(QString databaseType, QString connectionName = QString(""),
              QString hostname = QString(""),
              QString databasename = QString("") ,
              QString username = QString(""), QString password = QString(""),
-             qint64 port = 0, bool loggerActivated = true, bool logQueries=false, bool logErrors=true);
+             qint64 port = 0, bool loggerActivated = true, bool logQueries = false,
+             bool logErrors = true);
     QSqlDatabase getDatabase();
     QString getConnectionName();
     QSqlQuery getQuery();
diff --git a/src/databasemigration.cpp b/src/databasemigration.cpp
index 1d35e7c..b365e1e 100644
--- a/src/databasemigration.cpp
+++ b/src/databasemigration.cpp
@@ -45,6 +45,3 @@ QDateTime DatabaseMigration::getApplyTime() const {
 void DatabaseMigration::setApplyTime(const QDateTime &value) {
     applyTime = value;
 }
-
-
-
diff --git a/src/entityhelper.cpp b/src/entityhelper.cpp
index ffe1331..c06b7b6 100644
--- a/src/entityhelper.cpp
+++ b/src/entityhelper.cpp
@@ -4,13 +4,13 @@
 #include "cache.h"
 
 using namespace CuteEntityManager;
-EntityHelper::EntityHelper()
-{
+EntityHelper::EntityHelper() {
 
 }
 
 
-const QHash<QString, Relation> EntityHelper::getNonInheritedRelations(const Entity *entity) {
+const QHash<QString, Relation> EntityHelper::getNonInheritedRelations(
+    const Entity *entity) {
     auto relations = entity->getRelations();
     auto superObject = EntityInstanceFactory::newSuperClassInstance(entity);
     if (superObject) {
@@ -29,14 +29,15 @@ const QHash<QString, Relation> EntityHelper::getNonInheritedRelations(const Enti
 }
 
 
-const QList<const QMetaObject *> EntityHelper::superClasses(const Entity *entity,bool
-                                                            stopAtSingleTableInheritance) {
+const QList<const QMetaObject *> EntityHelper::superClasses(
+    const Entity *entity, bool
+    stopAtSingleTableInheritance) {
     QList<const QMetaObject *> classes = QList<const QMetaObject *>();
     auto superMetaObject = entity->metaObject()->superClass();
     if (entity->getInheritanceStrategy() == InheritanceStrategy::JOINED_TABLE) {
         Entity *e = nullptr;
         while (superMetaObject && QString(superMetaObject->className()) !=
-               QString("CuteEntityManager::Entity")) {
+                QString("CuteEntityManager::Entity")) {
             e = EntityInstanceFactory::createInstance(superMetaObject->className());
             if (e) {
                 classes.append(superMetaObject);
@@ -55,11 +56,13 @@ const QList<const QMetaObject *> EntityHelper::superClasses(const Entity *entity
     return classes;
 }
 
-const QHash<QString, QMetaProperty> EntityHelper::getMetaProperties(const Entity *entity) {
+const QHash<QString, QMetaProperty> EntityHelper::getMetaProperties(
+    const Entity *entity) {
     return EntityHelper::getMetaProperties(entity->metaObject());
 }
 
-const QHash<QString, QMetaProperty> EntityHelper::getSuperMetaProperties(const Entity *entity) {
+const QHash<QString, QMetaProperty> EntityHelper::getSuperMetaProperties(
+    const Entity *entity) {
     auto superMetaObjectPropertyMap = QHash<QString, QMetaProperty>();
     auto superMeta = entity->metaObject()->superClass();
     if (QString(superMeta->className()) != QString("CuteEntityManager::Entity")
@@ -75,7 +78,7 @@ const QHash<QString, QMetaProperty> EntityHelper::getSuperMetaProperties(const E
 }
 
 const QHash<QString, QMetaProperty> EntityHelper::getMetaProperties(
-        const QMetaObject *object) {
+    const QMetaObject *object) {
     auto h = QHash<QString, QMetaProperty>();
     for (int var = 0; var < object->propertyCount(); ++var) {
         QMetaProperty m = object->property(var);
@@ -86,7 +89,8 @@ const QHash<QString, QMetaProperty> EntityHelper::getMetaProperties(
     return h;
 }
 
-const QHash<QString, QMetaProperty> EntityHelper::getInheritedMetaProperties(const Entity *entity) {
+const QHash<QString, QMetaProperty> EntityHelper::getInheritedMetaProperties(
+    const Entity *entity) {
     auto classes = EntityHelper::superClasses(entity);
     auto wholeProperties = QHash<QString, QMetaProperty>();
     for (int var = classes.size() - 1; var >= 0; --var) {
@@ -101,7 +105,8 @@ const QHash<QString, QMetaProperty> EntityHelper::getInheritedMetaProperties(con
     return wholeProperties;
 }
 
-const QHash<Relation, QMetaProperty> EntityHelper::getRelationProperties(const Entity *entity) {
+const QHash<Relation, QMetaProperty> EntityHelper::getRelationProperties(
+    const Entity *entity) {
     auto h = QHash<Relation, QMetaProperty>();
     auto relations = entity->getRelations();
     for (int var = 0; var < entity->metaObject()->propertyCount(); ++var) {
@@ -117,17 +122,16 @@ const char *EntityHelper::getClassname(const Entity *entity) {
     return entity->metaObject()->className();
 }
 
-const QString EntityHelper::getClassName(const Entity *entity)
-{
+const QString EntityHelper::getClassName(const Entity *entity) {
     return QString(entity->metaObject()->className());
 }
 
 void EntityHelper::setListProperty(const QSharedPointer<Entity> &entity,
-                                    QList<QSharedPointer<Entity> > &list,
-                                    const QMetaProperty &property)  {
+                                   QList<QSharedPointer<Entity> > &list,
+                                   const QMetaProperty &property)  {
     QVariant var;
     var.setValue<QList<QSharedPointer<Entity>>>(list);
-    property.write(entity.data(),var);
+    property.write(entity.data(), var);
 }
 
 void EntityHelper::addEntityToListProperty(const QSharedPointer<Entity>
@@ -143,8 +147,8 @@ void EntityHelper::addEntityToListProperty(const QSharedPointer<Entity>
 }
 
 void EntityHelper::setProperty(const QSharedPointer<Entity> &entity,
-                                QSharedPointer<Entity> value,
-                                const QMetaProperty &property) {
+                               QSharedPointer<Entity> value,
+                               const QMetaProperty &property) {
     if (value && value->getProperty(value->getPrimaryKey()).toLongLong()
             > -1) {
         QVariant var;
@@ -153,12 +157,13 @@ void EntityHelper::setProperty(const QSharedPointer<Entity> &entity,
     }
 }
 
-void EntityHelper::setProperty(const QSharedPointer<Entity> &entity, QSharedPointer<Entity> value, const QString property) {
+void EntityHelper::setProperty(const QSharedPointer<Entity> &entity,
+                               QSharedPointer<Entity> value, const QString property) {
     auto props = EntityHelper::getMetaProperties(entity.data());
-    if(props.contains(property)) {
+    if (props.contains(property)) {
         QVariant var;
         var.setValue<QSharedPointer<Entity>>(value);
-        entity->setProperty(property,var);
+        entity->setProperty(property, var);
     }
 }
 
diff --git a/src/entityhelper.h b/src/entityhelper.h
index 0bee06c..6fc7353 100644
--- a/src/entityhelper.h
+++ b/src/entityhelper.h
@@ -8,34 +8,40 @@ namespace CuteEntityManager {
 class Relation;
 class Entity;
 class Cache;
-class EntityHelper
-{
-public:
+class EntityHelper {
+  public:
     EntityHelper();
-    static const QHash<QString, Relation> getNonInheritedRelations(const Entity *entity);
-    static const QList<const QMetaObject *> superClasses(const Entity *entity,bool stopAtSingleTableInheritance
-                                                         = false);
-    static const QHash<QString, QMetaProperty> getMetaProperties(const Entity *entity);
-    static const QHash<QString, QMetaProperty> getSuperMetaProperties(const Entity *entity);
-    static const QHash<QString, QMetaProperty> getMetaProperties(const QMetaObject *object);
-    static const QHash<QString, QMetaProperty> getInheritedMetaProperties(const Entity *entity);
-    static const QHash<Relation, QMetaProperty> getRelationProperties(const Entity *entity);
+    static const QHash<QString, Relation> getNonInheritedRelations(
+        const Entity *entity);
+    static const QList<const QMetaObject *> superClasses(const Entity *entity,
+            bool stopAtSingleTableInheritance
+            = false);
+    static const QHash<QString, QMetaProperty> getMetaProperties(
+        const Entity *entity);
+    static const QHash<QString, QMetaProperty> getSuperMetaProperties(
+        const Entity *entity);
+    static const QHash<QString, QMetaProperty> getMetaProperties(
+        const QMetaObject *object);
+    static const QHash<QString, QMetaProperty> getInheritedMetaProperties(
+        const Entity *entity);
+    static const QHash<Relation, QMetaProperty> getRelationProperties(
+        const Entity *entity);
 
     static const char *getClassname(const Entity *entity);
     static const QString getClassName(const Entity *entity);
     static void addEntityToListProperty(const QSharedPointer<Entity> &entity,
-                                 QSharedPointer<Entity> add, const QMetaProperty &property);
+                                        QSharedPointer<Entity> add, const QMetaProperty &property);
     static void setListProperty(const QSharedPointer<Entity> &entity,
-                         QList<QSharedPointer<Entity>> &list,
-                         const QMetaProperty &property);
+                                QList<QSharedPointer<Entity>> &list,
+                                const QMetaProperty &property);
     static void setProperty(const QSharedPointer<Entity> &entity,
-                     QSharedPointer<Entity> value,
-                     const QMetaProperty &property);
+                            QSharedPointer<Entity> value,
+                            const QMetaProperty &property);
     static void setProperty(const QSharedPointer<Entity> &entity,
-                     QSharedPointer<Entity> value,
-                     const QString property);
+                            QSharedPointer<Entity> value,
+                            const QString property);
     static QMetaProperty mappedProperty(const Relation &r,
-                                 const QSharedPointer<Entity> &foreignEntity);
+                                        const QSharedPointer<Entity> &foreignEntity);
 };
 }
 
diff --git a/src/entityinstancefactory.cpp b/src/entityinstancefactory.cpp
index 94cda59..b31899c 100644
--- a/src/entityinstancefactory.cpp
+++ b/src/entityinstancefactory.cpp
@@ -78,7 +78,8 @@ Entity *EntityInstanceFactory::setAttributes(Entity *&e,
                         prop.write(e, iterator.value());
                     }
                 } else {
-                    qDebug() << prop.name() << "on Entity" << EntityHelper::getClassname(e) << "not writeable!";
+                    qDebug() << prop.name() << "on Entity" << EntityHelper::getClassname(
+                                 e) << "not writeable!";
                 }
             }
             ++iterator;
diff --git a/src/entitymanager.cpp b/src/entitymanager.cpp
index fb6acdc..2ad7af7 100644
--- a/src/entitymanager.cpp
+++ b/src/entitymanager.cpp
@@ -35,15 +35,11 @@ EntityManager::EntityManager(QSqlDatabase database) : QObject() {
 EntityManager::EntityManager(const QString &databaseType, QString databasename ,
                              QString hostname,
                              QString username,
-                             QString password, QString port) : QObject() {
-    bool logQueries = false;
-#ifdef QT_DEBUG
-    logQueries = true;
-#endif
+                             QString password, QString port, bool logQueries) : QObject() {
     auto db = new Database(databaseType, this->createConnection(), hostname,
                            databasename, username,
                            password,
-                           port.toInt(),true,logQueries);
+                           port.toInt(), true, logQueries);
     this->db = QSharedPointer<Database>(db);
     this->init();
 }
@@ -60,7 +56,8 @@ EntityManager::~EntityManager() {
 }
 
 bool EntityManager::startup(QString version, QStringList toInitialize) {
-    QSharedPointer<Entity> dbm = QSharedPointer<DatabaseMigration>(new DatabaseMigration());
+    QSharedPointer<Entity> dbm = QSharedPointer<DatabaseMigration>
+                                 (new DatabaseMigration());
     QHash<QString, QVariant> map = QHash<QString, QVariant>();
     bool ok = true;
     map.insert("version", version);
@@ -147,8 +144,8 @@ void EntityManager::removeConnectionName(const QString &name) {
 }
 
 QSharedPointer<Entity> EntityManager::findById(const qint64 &id,
-                                               QSharedPointer<Entity> &e,
-                                               const bool refresh) {
+        QSharedPointer<Entity> &e,
+        const bool refresh) {
     QSharedPointer<Entity> r;
     if (!e.isNull() && (refresh
                         || !(r = this->cache.get(id, EntityHelper::getClassname(e.data()))))) {
@@ -160,9 +157,9 @@ QSharedPointer<Entity> EntityManager::findById(const qint64 &id,
 }
 
 QSharedPointer<Entity> EntityManager::findById(const qint64 &id,
-                                               const QString &classname) {
+        const QString &classname) {
     QSharedPointer<Entity> e = QSharedPointer<Entity>
-            (EntityInstanceFactory::createInstance(classname));
+                               (EntityInstanceFactory::createInstance(classname));
     return this->findById(id, e);
 }
 
@@ -173,7 +170,7 @@ void EntityManager::manyToOne(const QSharedPointer<Entity> &entity,
     bool ok = false;
     if ((convertedId = id.toLongLong(&ok)) && ok && convertedId > -1) {
         QString className = EntityInstanceFactory::extractEntityType(
-                    property.typeName());
+                                property.typeName());
         QSharedPointer<Entity> ptr = QSharedPointer<Entity>();
         if (refresh || !(this->cache.contains(convertedId, className)
                          && (ptr = this->cache.get(convertedId, className)) && ptr)) {
@@ -192,10 +189,11 @@ void EntityManager::oneToMany(const QSharedPointer<Entity> &entity,
                                                 property.typeName())));
         if (e) {
             QSqlQuery q = this->schema->getQueryBuilder()->oneToMany(e->getTablename(),
-                                                                     this->schema->getQueryBuilder()->generateColumnNameID(r.getMappedBy()),
-                                                                     entity->getId());
+                          this->schema->getQueryBuilder()->generateColumnNameID(r.getMappedBy()),
+                          entity->getId());
             auto listMap = this->convertQueryResult(q);
-            auto entities = this->convert(listMap, EntityHelper::getClassname(e.data()), refresh);
+            auto entities = this->convert(listMap, EntityHelper::getClassname(e.data()),
+                                          refresh);
             EntityHelper::setListProperty(entity, entities, property);
         }
     }
@@ -213,12 +211,13 @@ void EntityManager::oneToOne(const QSharedPointer<Entity> &entity,
                                             EntityInstanceFactory::extractEntityType(property.typeName())));
         if (e) {
             QSqlQuery q = this->schema->getQueryBuilder()->oneToMany(
-                        e->getTablename(),
-                        this->schema->getQueryBuilder()->generateColumnNameID(
-                            r.getMappedBy()),
-                        entity->getProperty(entity->getPrimaryKey()).toLongLong(), 1);
+                              e->getTablename(),
+                              this->schema->getQueryBuilder()->generateColumnNameID(
+                                  r.getMappedBy()),
+                              entity->getProperty(entity->getPrimaryKey()).toLongLong(), 1);
             auto listMap = this->convertQueryResult(q);
-            auto entities = this->convert(listMap, EntityHelper::getClassname(e.data()), refresh);
+            auto entities = this->convert(listMap, EntityHelper::getClassname(e.data()),
+                                          refresh);
             if (!entities.isEmpty()) {
                 QSharedPointer<Entity> ptr = entities.at(0);
                 EntityHelper::setProperty(entity, ptr, property);
@@ -233,7 +232,7 @@ bool EntityManager::canPersistRelation(const Relation &relation,
 }
 
 void EntityManager::savePrePersistedRelations(const QSharedPointer<Entity>
-                                              &entity) {
+        &entity) {
     auto relations = EntityHelper::getRelationProperties(entity.data());
     auto iterator = relations.constBegin();
     while (iterator != relations.constEnd()) {
@@ -244,17 +243,18 @@ void EntityManager::savePrePersistedRelations(const QSharedPointer<Entity>
                 auto e = EntityInstanceFactory::castQVariant(var);
                 if (this->shouldBeSaved(e, r)) {
                     this->save(e);
-                    auto fkProp = EntityHelper::mappedProperty(r,e);
-                    if(fkProp.isValid()) {
-                        EntityHelper::addEntityToListProperty(e,entity,fkProp);
+                    auto fkProp = EntityHelper::mappedProperty(r, e);
+                    if (fkProp.isValid()) {
+                        EntityHelper::addEntityToListProperty(e, entity, fkProp);
                     }
                 }
-            } else if (r.getType() == RelationType::ONE_TO_ONE && r.getMappedBy().isEmpty()) {
+            } else if (r.getType() == RelationType::ONE_TO_ONE
+                       && r.getMappedBy().isEmpty()) {
                 auto e =  EntityInstanceFactory::castQVariant(var);
                 this->save(e);
-                auto prop = EntityHelper::mappedProperty(r,e);
-                if(prop.isValid()) {
-                    EntityHelper::setProperty(e,entity,prop);
+                auto prop = EntityHelper::mappedProperty(r, e);
+                if (prop.isValid()) {
+                    EntityHelper::setProperty(e, entity, prop);
                 }
             }
         }
@@ -263,7 +263,7 @@ void EntityManager::savePrePersistedRelations(const QSharedPointer<Entity>
 }
 
 void EntityManager::savePostPersistedRelations(const QSharedPointer<Entity>
-                                               &entity) {
+        &entity) {
     auto relations = EntityHelper::getRelationProperties(entity.data());
     auto iterator = relations.constBegin();
     while (iterator != relations.constEnd()) {
@@ -274,15 +274,15 @@ void EntityManager::savePostPersistedRelations(const QSharedPointer<Entity>
                 this->persistManyToMany(entity, r, var);
             } else if (this->canPersistRelation(r, RelationType::ONE_TO_MANY, var)) {
                 QList<QSharedPointer<Entity>> list = EntityInstanceFactory::castQVariantList(
-                            var);
-                if(!list.isEmpty()) {
-                    auto fkProp = EntityHelper::mappedProperty(r,list.at(0));
+                        var);
+                if (!list.isEmpty()) {
+                    auto fkProp = EntityHelper::mappedProperty(r, list.at(0));
                     for (int var = 0; var < list.size(); ++var) {
                         auto e = list.at(var);
                         if (this->shouldBeSaved(e, r)) {
                             this->save(e);
-                            if(fkProp.isValid()) {
-                                EntityHelper::addEntityToListProperty(e,entity,fkProp);
+                            if (fkProp.isValid()) {
+                                EntityHelper::addEntityToListProperty(e, entity, fkProp);
                             }
                         }
                     }
@@ -291,9 +291,9 @@ void EntityManager::savePostPersistedRelations(const QSharedPointer<Entity>
                        && !r.getMappedBy().isEmpty()) {
                 auto e =  EntityInstanceFactory::castQVariant(var);
                 this->save(e);
-                auto fkProp = EntityHelper::mappedProperty(r,e);
-                if(fkProp.isValid()) {
-                    EntityHelper::addEntityToListProperty(e,entity,fkProp);
+                auto fkProp = EntityHelper::mappedProperty(r, e);
+                if (fkProp.isValid()) {
+                    EntityHelper::addEntityToListProperty(e, entity, fkProp);
                 }
             }
         }
@@ -302,16 +302,15 @@ void EntityManager::savePostPersistedRelations(const QSharedPointer<Entity>
 }
 
 void EntityManager::persistMappedByRelation(const QList<QSharedPointer<Entity> >
-                                            &list, QSqlQuery &q, const QSharedPointer<Entity> &entity,
-                                            const QSharedPointer<Entity> &ptr, const Relation &r,
-                                            const QString &tblName) {
+        &list, QSqlQuery &q, const QSharedPointer<Entity> &entity,
+        const QSharedPointer<Entity> &ptr, const Relation &r,
+        const QString &tblName) {
     q.clear();
-    QList<QSharedPointer<Entity>> saved = r.getCascadeType().contains(
-                CascadeType::ALL)
-            || r.getCascadeType().contains(CascadeType::MERGE)
-            || r.getCascadeType().contains(CascadeType::PERSIST) ?
-                this->saveRelationEntities(list,
-                                           r) : list;
+    QList<QSharedPointer<Entity>> saved =
+                                   r.getCascadeType().contains(CascadeType::ALL) ||
+                                   r.getCascadeType().contains(CascadeType::MERGE) ||
+                                   r.getCascadeType().contains(CascadeType::PERSIST) ?
+                                   this->saveRelationEntities(list, r) : list;
     this->db->startTransaction();
     auto builder = this->schema->getQueryBuilder();
     q = builder->manyToManyInsert(tblName,
@@ -319,20 +318,15 @@ void EntityManager::persistMappedByRelation(const QList<QSharedPointer<Entity> >
                                   builder->generateManyToManyColumnName(ptr));
     q.bindValue(0, entity->getProperty(entity->getPrimaryKey()));
     auto prop = EntityHelper::mappedProperty(r, ptr);
+    bool propertyIsValid = this->isRelationPropertyValid(prop, r, entity, ptr);
     QSharedPointer<Entity> item;
     for (int var = 0; var < saved.size(); ++var) {
         item = list.at(var);
         if (item->getProperty(item->getPrimaryKey()).toLongLong() > -1) {
             q.bindValue(1, item->getProperty(ptr->getPrimaryKey()));
-            this->schema->getDatabase()->exec(q);
-            if (prop.isReadable()) {
+            bool ok = this->db->exec(q);
+            if (ok && propertyIsValid) {
                 EntityHelper::addEntityToListProperty(item, entity, prop);
-            } else {
-                qDebug() << "Query exec for many to many relation failed." <<
-                            q.lastError().text();
-                qDebug() << "Involved entities: " << EntityHelper::getClassName(entity.data()) <<
-                            "(MainEntitiy) and "  << EntityHelper::getClassName(ptr.data());
-                qDebug() << "Relation:" << r.getPropertyName();
             }
         }
     }
@@ -341,6 +335,20 @@ void EntityManager::persistMappedByRelation(const QList<QSharedPointer<Entity> >
     }
 }
 
+
+bool EntityManager::isRelationPropertyValid(const QMetaProperty &prop,
+        const Relation &r, const QSharedPointer<Entity> &e,
+        const QSharedPointer<Entity> &relatedEntity) {
+    bool propertyIsValid = prop.isValid() && prop.isReadable() && prop.isWritable();
+    if (!propertyIsValid) {
+        qDebug() << "Relation is incomplete:" << r.getPropertyName();
+        qDebug() << "Involved entities: " << EntityHelper::getClassName(
+                     e.data()) <<
+                 "(MainEntitiy) and "  << EntityHelper::getClassName(relatedEntity.data());
+    }
+    return propertyIsValid;
+}
+
 bool EntityManager::shouldBeSaved(QSharedPointer<Entity> &entity,
                                   const Relation &r) {
     return entity && (r.getCascadeType().contains(CascadeType::ALL)
@@ -394,7 +402,7 @@ void EntityManager::setNullOneToManyRelation(QVariant &var, const Relation &r) {
 }
 
 void EntityManager::setNullEntityPropertyRelation(QVariant &var,
-                                                  const Relation &r) {
+        const Relation &r) {
     if (r.getCascadeType().contains(CascadeType::REMOVE)
             || r.getCascadeType().contains(CascadeType::ALL)) {
         this->removeEntity(var);
@@ -402,7 +410,8 @@ void EntityManager::setNullEntityPropertyRelation(QVariant &var,
         auto e = EntityInstanceFactory::castQVariant(var);
         auto metas = EntityHelper::getMetaProperties(e.data());
         if (metas.contains(r.getMappedBy())) {
-            EntityHelper::setProperty(e, QSharedPointer<Entity>(), metas.value(r.getMappedBy()));
+            EntityHelper::setProperty(e, QSharedPointer<Entity>(),
+                                      metas.value(r.getMappedBy()));
             this->save(e);
         }
     }
@@ -426,8 +435,8 @@ void EntityManager::removeEntityList(QVariant &var) {
 }
 
 void EntityManager::removeManyToManyEntityList(const QSharedPointer<Entity> &e,
-                                               const Relation &r,
-                                               QVariant &var) {
+        const Relation &r,
+        QVariant &var) {
     if (!var.isNull() && var.canConvert<QVariantList>()) {
         auto list = EntityInstanceFactory::castQVariantList(var);
         if (!list.isEmpty()) {
@@ -436,12 +445,12 @@ void EntityManager::removeManyToManyEntityList(const QSharedPointer<Entity> &e,
             QString tblName = builder->generateManyToManyTableName(e, ptr, r);
             if (this->schema->getTables().contains(tblName)) {
                 QSqlQuery q = builder->manyToManyDelete(
-                            tblName, builder->generateManyToManyColumnName(e),
-                            e->getProperty(e->getPrimaryKey()).toLongLong());
+                                  tblName, builder->generateManyToManyColumnName(e),
+                                  e->getProperty(e->getPrimaryKey()).toLongLong());
                 bool refresh = r.getCascadeType().contains(CascadeType::REFRESH)
-                        || r.getCascadeType().contains(CascadeType::ALL);
+                               || r.getCascadeType().contains(CascadeType::ALL);
                 bool remove = r.getCascadeType().contains(CascadeType::REMOVE)
-                        || r.getCascadeType().contains(CascadeType::ALL);
+                              || r.getCascadeType().contains(CascadeType::ALL);
                 if (this->schema->getDatabase()->exec(q)) {
                     for (int var = 0; var < list.size(); ++var) {
                         auto entity = list.at(var);
@@ -461,7 +470,7 @@ void EntityManager::removeManyToManyEntityList(const QSharedPointer<Entity> &e,
 }
 
 QList<QSharedPointer<Entity>> EntityManager::saveRelationEntities(
-        const QList<QSharedPointer<Entity> > &list, const Relation &r) {
+const QList<QSharedPointer<Entity> > &list, const Relation &r) {
     QList<QSharedPointer<Entity>> saved = QList<QSharedPointer<Entity>>();
     QSharedPointer<Entity> ptr;
     for (int var = 0; var < list.size(); ++var) {
@@ -483,29 +492,40 @@ void EntityManager::persistManyToMany(const QSharedPointer<Entity> &entity,
         QString tblName = builder->generateManyToManyTableName(entity, ptr, r);
         if (this->schema->getTables().contains(tblName)) {
             QSqlQuery q = builder->manyToManyDelete(
-                        tblName, builder->generateManyToManyColumnName(entity),
-                        entity->getProperty(entity->getPrimaryKey()).toLongLong());
+                              tblName, builder->generateManyToManyColumnName(entity),
+                              entity->getProperty(entity->getPrimaryKey()).toLongLong());
             if (this->db->exec(q)) {
                 auto nList = EntityInstanceFactory::castQVariantList(property);
                 this->persistMappedByRelation(nList, q, entity, ptr, r, tblName);
             }
         } else {
-            qDebug() << "MANY_TO_MANY Table " << tblName << " not exists";
+            this->missingManyToManyTable(tblName, entity, r);
         }
     }
 }
 
 
+void EntityManager::missingManyToManyTable(const QString &tblName,
+        const QSharedPointer<Entity> &e, const Relation &r) {
+    qDebug() << "MANY_TO_MANY Table " << tblName << " is missing";
+    qDebug() << "Entity " << EntityHelper::getClassName(e.data()) << " is affected";
+    qDebug() << "Relation of property: " << r.getPropertyName();
+    /**
+      @todo wait for Qt 5.5.1
+      @see https://codereview.qt-project.org/#/c/122232/
+      */
+    //qDebug() << "RelationType:" << r.getType() << " MappedBy:" << r.getMappedBy();
+}
 
 void EntityManager::manyToMany(const QSharedPointer<Entity> &entity,
                                const QMetaProperty &property, const Relation &relation, const bool refresh) {
     QSharedPointer<Entity> secEntityPtr = QSharedPointer<Entity>
-            (EntityInstanceFactory::createInstance(EntityInstanceFactory::extractEntityType(
-                                                       QString(property.typeName()))));
+                                          (EntityInstanceFactory::createInstance(EntityInstanceFactory::extractEntityType(
+                                                  QString(property.typeName()))));
     auto builder = this->schema->getQueryBuilder();
     if (secEntityPtr) {
         QString tblName = builder->generateManyToManyTableName(entity, secEntityPtr,
-                                                               relation);
+                          relation);
         if (this->schema->getTables().contains(tblName)) {
             QSqlQuery q = builder->manyToMany(tblName,
                                               builder->generateManyToManyColumnName(entity),
@@ -516,25 +536,28 @@ void EntityManager::manyToMany(const QSharedPointer<Entity> &entity,
                 auto id = listMap.at(var).value(builder->generateManyToManyColumnName(
                                                     secEntityPtr));
                 if (!refresh
-                        && this->cache.contains(id.toLongLong(), EntityHelper::getClassname(secEntityPtr.data()))) {
-                    e = this->cache.get(id.toLongLong(), EntityHelper::getClassname(secEntityPtr.data()));
+                        && this->cache.contains(id.toLongLong(),
+                                                EntityHelper::getClassname(secEntityPtr.data()))) {
+                    e = this->cache.get(id.toLongLong(),
+                                        EntityHelper::getClassname(secEntityPtr.data()));
                 } else {
-                    e = this->findById(id.toLongLong(), EntityHelper::getClassname(secEntityPtr.data()));
+                    e = this->findById(id.toLongLong(),
+                                       EntityHelper::getClassname(secEntityPtr.data()));
                 }
-                if(e) {
-                    EntityHelper::addEntityToListProperty(entity,e,property);
+                if (e) {
+                    EntityHelper::addEntityToListProperty(entity, e, property);
                 }
             }
         } else {
-            qDebug() << "MANY_TO_MANY Table " << tblName << " not exists";
+            this->missingManyToManyTable(tblName, entity, relation);
         }
     }
 }
 
 QList<QSharedPointer<Entity> > EntityManager::findEntityByAttributes(
-        const QSharedPointer<Entity>
-        &entity,
-        bool ignoreID) {
+    const QSharedPointer<Entity>
+    &entity,
+    bool ignoreID) {
     auto maps = this->findAllByAttributes(entity, ignoreID);
     return this->convert(maps, EntityHelper::getClassname(entity.data()));
 }
@@ -566,7 +589,7 @@ bool EntityManager::create(QSharedPointer<Entity> &entity,
         }
         this->db->startTransaction();
         QList<QSqlQuery> q = this->schema->getQueryBuilder()->create(
-                    entity);
+                                 entity);
         bool first = true;
         QVariant id = -1;
         for (int var = 0; var < q.size(); ++var) {
@@ -576,8 +599,7 @@ bool EntityManager::create(QSharedPointer<Entity> &entity,
             }
             rc = this->db->exec(query);
             if (!rc) {
-                qDebug() << "Query failed:" << query.lastError().text() << " of class " <<
-                            EntityHelper::getClassname(entity.data());
+                qDebug() << "class is erroneous:" <<  EntityHelper::getClassname(entity.data());
                 break;
             }
             if (first) {
@@ -608,16 +630,8 @@ bool EntityManager::merge(QSharedPointer<Entity> &entity, bool withRelations) {
         }
         this->db->startTransaction();
         QList<QSqlQuery> q = this->schema->getQueryBuilder()->merge(
-                    entity);
-        bool ok = true;
-        for (int var = 0; var < q.size(); ++var) {
-            auto query = q.at(var);
-            ok = this->db->exec(query);
-            if (!ok) {
-                qDebug() << query.lastError().text();
-                break;
-            }
-        }
+                                 entity);
+        bool ok = this->db->exec(q);
         if (!ok || !this->db->commitTransaction()) {
             this->db->rollbackTransaction();
             return false;
@@ -629,10 +643,10 @@ bool EntityManager::merge(QSharedPointer<Entity> &entity, bool withRelations) {
 }
 
 QHash<QString, QVariant> EntityManager::findByPk(qint64 id,
-                                                 const QSharedPointer<Entity>
-                                                 &e) {
+        const QSharedPointer<Entity>
+        &e) {
     QSqlQuery q = this->schema->getQueryBuilder()->find(id, e, 0,
-                                                        e->getPrimaryKey());
+                  e->getPrimaryKey());
     auto listMap  = this->convertQueryResult(q);
     if (!listMap.isEmpty()) {
         return listMap.at(0);
@@ -642,23 +656,23 @@ QHash<QString, QVariant> EntityManager::findByPk(qint64 id,
 
 
 QList<QHash<QString, QVariant> > EntityManager::findAllByAttributes(
-        const QSharedPointer<Entity>
-        &entity,
-        bool ignoreID) {
+    const QSharedPointer<Entity>
+    &entity,
+    bool ignoreID) {
     QSqlQuery q = this->schema->getQueryBuilder()->findByAttributes(
-                entity, ignoreID);
+                      entity, ignoreID);
     return this->convertQueryResult(q);
 }
 
 QList<QHash <QString, QVariant> > EntityManager::findAllByAttributes(
-        const QHash<QString, QVariant> &m, const QString &tblname, bool ignoreID) {
+    const QHash<QString, QVariant> &m, const QString &tblname, bool ignoreID) {
     QSqlQuery q = this->schema->getQueryBuilder()->findByAttributes(m,
-                                                                    tblname, ignoreID);
+                  tblname, ignoreID);
     return this->convertQueryResult(q);
 }
 
 QList<QHash<QString, QVariant> > EntityManager::convertQueryResult(
-        QSqlQuery &q) {
+    QSqlQuery &q) {
     QList<QHash <QString, QVariant> > listmap = QList<QHash <QString, QVariant> >();
     this->db->select(q);
     QSqlRecord rec = q.record();
@@ -678,7 +692,7 @@ QList<QHash<QString, QVariant> > EntityManager::convertQueryResult(
 }
 
 QList<QHash <QString, QVariant> > EntityManager::findAll(
-        const QSharedPointer<Entity> &e) {
+    const QSharedPointer<Entity> &e) {
     QSqlQuery q = this->schema->getQueryBuilder()->findAll(e);
     return this->convertQueryResult(q);
 }
@@ -691,7 +705,7 @@ void EntityManager::resolveRelations(const QSharedPointer<Entity> &entity,
         const Relation r = iterator.key();
         const QMetaProperty property = iterator.value();
         QString colName = this->schema->getQueryBuilder()->generateColumnNameID(
-                    r.getPropertyName());
+                              r.getPropertyName());
         switch (r.getType()) {
         case RelationType::MANY_TO_ONE:
             if (map.contains(colName)) {
@@ -736,19 +750,13 @@ bool EntityManager::remove(QSharedPointer<Entity> &entity) {
     this->db->startTransaction();
     this->removeRelations(entity);
     auto queries = this->schema->getQueryBuilder()->remove(entity);
-    bool ok = true;
-    for (int var = 0; var < queries.size(); ++var) {
-        auto q = queries.at(var);
-        if (!q.exec()) {
-            this->db->rollbackTransaction();
-            ok = false;
-            break;
-        }
-    }
+    bool ok = this->db->exec(queries);
     if (ok && this->db->commitTransaction()) {
         this->cache.remove(entity);
         entity.clear();
         rc = true;
+    } else {
+        this->db->rollbackTransaction();
     }
     return rc;
 }
@@ -760,14 +768,14 @@ bool EntityManager::removeAll(QString tblname) {
 bool EntityManager::createTable(const QSharedPointer<Entity> &entity,
                                 bool createRelationTables) {
     return this->schema->getQueryBuilder()->createTable(entity,
-                                                        createRelationTables);
+            createRelationTables);
 }
 
 qint8 EntityManager::count(const QSharedPointer<Entity> &entity,
                            bool ignoreID) {
     qint8 rc = -1;
     QSqlQuery q = this->schema->getQueryBuilder()->count(entity,
-                                                         ignoreID);
+                  ignoreID);
     this->db->select(q);
     if (q.next()) {
         rc = q.value(0).toInt();
@@ -790,8 +798,8 @@ void EntityManager::setConnectionNames(QStringList list) {
 }
 
 QSharedPointer<Entity> EntityManager::convert(const QHash<QString, QVariant>
-                                              &map,
-                                              const char *classname,const bool refresh) {
+        &map,
+        const char *classname, const bool refresh) {
     auto ptr = QSharedPointer<Entity>(EntityInstanceFactory::createInstance(
                                           classname, map));
     this->cache.insert(ptr);
@@ -800,8 +808,8 @@ QSharedPointer<Entity> EntityManager::convert(const QHash<QString, QVariant>
 }
 
 QList<QSharedPointer<Entity> > EntityManager::convert(
-        QList<QHash<QString, QVariant> > maps,
-        const char *classname,const bool refresh) {
+    QList<QHash<QString, QVariant> > maps,
+    const char *classname, const bool refresh) {
     auto list = QList<QSharedPointer<Entity> >();
     for (int var = 0; var < maps.size(); ++var) {
         auto ptr = this->convert(maps.at(var), classname, refresh);
diff --git a/src/entitymanager.h b/src/entitymanager.h
index 039f436..eede28d 100644
--- a/src/entitymanager.h
+++ b/src/entitymanager.h
@@ -45,7 +45,7 @@ class EntityManager : public QObject {
     EntityManager(const QString &databaseType, QString databasename = "" ,
                   QString hostname = "",
                   QString username = "",
-                  QString password = "", QString port = "");
+                  QString password = "", QString port = "", bool logQueries = false);
     ~EntityManager();
     static QStringList getConnectionNames();
     /**
@@ -179,7 +179,8 @@ class EntityManager : public QObject {
     void oneToMany(const QSharedPointer<Entity> &entity, const Relation &r,
                    const QMetaProperty &property, const bool refresh = false);
     void manyToMany(const QSharedPointer<Entity> &entity,
-                    const QMetaProperty &property, const Relation &relation, const bool refresh = false);
+                    const QMetaProperty &property, const Relation &relation,
+                    const bool refresh = false);
     void oneToOne(const QSharedPointer<Entity> &entity, const Relation &r,
                   const QMetaProperty &property, const bool refresh = false,
                   const QVariant &id = "");
@@ -214,9 +215,13 @@ class EntityManager : public QObject {
     void setNullOneToManyRelation(QVariant &var, const Relation &r);
     void setNullEntityPropertyRelation(QVariant &var, const Relation &r);
     QSharedPointer<Entity> convert(const QHash<QString, QVariant> &map,
-                                   const char *classname,const bool refresh = false);
+                                   const char *classname, const bool refresh = false);
     QList<QSharedPointer<Entity>> convert(QList<QHash<QString, QVariant> > maps,
-                                          const char *classname,const bool refresh = false);
+                                          const char *classname, const bool refresh = false);
+    void missingManyToManyTable(const QString &tblName,
+                                const QSharedPointer<Entity> &e, const Relation &r);
+    bool isRelationPropertyValid(const QMetaProperty &prop, const Relation &r,
+                                 const QSharedPointer<Entity> &e, const QSharedPointer<Entity> &relatedEntity);
 
   private:
     static QStringList connectionNames;
diff --git a/src/logger.cpp b/src/logger.cpp
index 10b2146..e545de1 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -16,56 +16,60 @@ QString Logger::defaultPath() const {
 }
 
 void Logger::lastError(const QSqlQuery &q, bool logQuery) {
-    QFile log(this->getPath());
-    log.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
-    log.seek(log.size());
-    QTextStream stream(&log);
-    const QString errorMsg = this->generateLogMsg(q.lastError());
-    if (!errorMsg.isEmpty()) {
-        qDebug() << errorMsg;
-        stream << errorMsg;
-    }
-    if(logQuery || !errorMsg.isEmpty()) {
-        const QString query = this->generateLogMsg(q);
-        if(!query.isEmpty()) {
-            qDebug() << query;
-            stream << query;
+    if (logQuery || q.lastError().isValid()) {
+        QFile log(this->getPath());
+        log.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
+        log.seek(log.size());
+        QTextStream stream(&log);
+        const QString errorMsg = this->generateLogMsg(q.lastError());
+        if (!errorMsg.isEmpty()) {
+            qDebug() << errorMsg;
+            stream << errorMsg;
         }
+        if (logQuery || !errorMsg.isEmpty()) {
+            const QString query = this->generateLogMsg(q);
+            if (!query.isEmpty()) {
+                qDebug() << query;
+                stream << query;
+            }
+        }
+        stream << "\n";
+        stream.flush();
+        log.close();
     }
-    stream << "\n";
-    stream.flush();
-    log.close();
 }
 
 void Logger::lastError(const QSqlError &e) {
-    if(e.isValid()) {
+    if (e.isValid()) {
         QFile log(this->getPath());
         log.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
         log.seek(log.size());
         QTextStream stream(&log);
         qDebug() << this->generateLogMsg(e);
         stream << this->generateLogMsg(e);
+        stream << "\n";
+        stream.flush();
         log.close();
     }
 }
 
 QString Logger::generateLogMsg(const QSqlQuery &q, bool withValues) const {
     QString r = "<" + q.executedQuery() + ">";
-    if(withValues) {
-    QMap<QString, QVariant> m = q.boundValues();
-    QMap<QString,QVariant>::iterator i;
-    if(!m.isEmpty()) {
-        r += "Values: ";
-        for (i = m.begin(); i != m.end(); ++i) {
-            r += "{" + i.key() + ":" + i.value().toString() + "}";
+    if (withValues) {
+        QMap<QString, QVariant> m = q.boundValues();
+        QMap<QString, QVariant>::iterator i;
+        if (!m.isEmpty()) {
+            r += "Values: ";
+            for (i = m.begin(); i != m.end(); ++i) {
+                r += "{" + i.key() + "=" + i.value().toString() + "}";
+            }
         }
     }
-    }
     return r;
 }
 
 QString Logger::getPath() {
-    if(this->path.isEmpty()) {
+    if (this->path.isEmpty()) {
         this->path = this->defaultPath();
     }
     return path;
@@ -76,9 +80,11 @@ void Logger::setPath(const QString &value) {
 }
 
 QString Logger::generateLogMsg(const QSqlError &e) const {
-    if(e.isValid()) {
-        return "ErrorUTC:" + QDateTime::currentDateTime().toString("yyyy-MM-dd|hh:MM:ss") + "|" + e.driverText() + "|" + e.databaseText().toLatin1();
-    } else {
-        return "";
+    QString r = "";
+    if (e.isValid()) {
+        r = "ErrorUTC:" +
+            QDateTime::currentDateTime().toString("yyyy-MM-dd|hh:MM:ss") + "|" +
+            e.driverText() + "|" + e.databaseText().toLatin1();
     }
+    return r;
 }
diff --git a/src/logger.h b/src/logger.h
index 6050738..81fbc98 100644
--- a/src/logger.h
+++ b/src/logger.h
@@ -6,23 +6,22 @@
 #include <QSqlError>
 #include <QSqlQuery>
 
-class Logger
-{
-public:
-    Logger(QString path="");
+class Logger {
+  public:
+    Logger(QString path = "");
     ~Logger();
     QString defaultPath() const;
 
     void lastError(const QSqlError &e);
-    void lastError(const QSqlQuery &q, bool logQuery=false);
+    void lastError(const QSqlQuery &q, bool logQuery = false);
     QString getPath();
     void setPath(const QString &value);
 
-protected:
+  protected:
     QString generateLogMsg(const QSqlError &e) const;
-    QString generateLogMsg(const QSqlQuery &q, bool withValues=true) const;
+    QString generateLogMsg(const QSqlQuery &q, bool withValues = true) const;
 
-private:
+  private:
     QString path;
 };
 
diff --git a/src/querybuilder.cpp b/src/querybuilder.cpp
index 763c91b..379124a 100644
--- a/src/querybuilder.cpp
+++ b/src/querybuilder.cpp
@@ -473,7 +473,7 @@ QString QueryBuilder::getColumnType(const QString &type) const {
     //cant believe that this could work in Qt
     //https://github.com/yiisoft/yii2/blob/master/framework/db/QueryBuilder.php
     QRegularExpression reg = QRegularExpression(
-                QRegularExpression::escape("/^(\\w+)\((.+?)\\)(.*)$/"));
+                QRegularExpression::escape("/^(\\w+)\\((.+?)\\)(.*)$/"));
     reg.optimize();
     QRegularExpressionMatchIterator i = reg.globalMatch(type, 0,
                                                         QRegularExpression::PartialPreferFirstMatch);
diff --git a/src/schema.cpp b/src/schema.cpp
index 5fd599e..0adb13e 100644
--- a/src/schema.cpp
+++ b/src/schema.cpp
@@ -131,7 +131,7 @@ void Schema::refresh() {
 
 QString Schema::getRawTable(QString name) {
     if (name.indexOf("{{")) {
-        QRegularExpression re(QRegularExpression::escape("/\\{\{(.*?)\\}\\}/"));
+        QRegularExpression re(QRegularExpression::escape("/\\{\\{(.*?)\\}\\}/"));
         return name.replace(re, QRegularExpression::escape("\\1"));
     }
     return name;
diff --git a/src/schema/sqliteschema.cpp b/src/schema/sqliteschema.cpp
index 62810c0..da0e3e0 100644
--- a/src/schema/sqliteschema.cpp
+++ b/src/schema/sqliteschema.cpp
@@ -34,9 +34,9 @@ SqliteSchema::~SqliteSchema() {
 QSharedPointer<QHash<QString, QString>> SqliteSchema::getTypeMap() {
     if (this->typeMap->empty()) {
         this->typeMap->insert(TYPE_PK,
-                                     "integer PRIMARY KEY AUTOINCREMENT NOT NULL");
+                              "integer PRIMARY KEY AUTOINCREMENT NOT NULL");
         this->typeMap->insert(TYPE_BIGPK,
-                                     "integer PRIMARY KEY AUTOINCREMENT NOT NULL");
+                              "integer PRIMARY KEY AUTOINCREMENT NOT NULL");
         this->typeMap->insert(TYPE_BOOLEAN, "boolean");
         this->typeMap->insert(TYPE_SMALLINT, "smallint");
         this->typeMap->insert(TYPE_INTEGER, "integer");
