A small abstract about the design First of all we've a namespace called Datebook class MainWindow is our QMainWindow and PimMainWindow it's the center of all datebook operations. It loads all Views, Configs, Shows, Manager and dispatches between them the Interface declarations use protected methods instead of signals because templates and signals does not match that nicely. I add friend declarations to the mainwindow so that we've a tight interface of interactions and know that it works. friend can not be inherited so all got enough abstraction. The dependency on the MainWindow is acceptable. Then we've a small DB Manager class which is responsible for controlling the ODateBookAccess class and to resolve other records ( due todo items, Birthdays.. ) Show - Show can show richtext of OEvent View - The basic view MainWindow - The mainwindow with all the actions Editor - The editor interface to edit and create OEvents AlarmManager - A widget to take care of alarm activation ManagerTemplate,StringManager - Responsible for managing strings for the Location and Description ComboBox TemplateManager - the OEvent TemplateManager