private Controller() {
		log.debug("Starting Controller()");
		try {
			init();
			
			// TimerBO
			timerBo = new TimerBO(timerPanel);
			Dao.getInstance().addObserver(timerBo);
			ActivityDao.getInstance().addObserver(timerBo);
			TimeDao.getInstance().addObserver(timerBo);
			
			// ActivityBO
			activityBo = new ActivityBO(activityDialog, activityListDialog);
			Dao.getInstance().addObserver(activityBo);
			ActivityDao.getInstance().addObserver(activityBo);
			TimeDao.getInstance().addObserver(activityBo);
			
			// TimeBO
			timeBo = new TimeBO(timeDialog, timeListDialog);
			Dao.getInstance().addObserver(timeBo);
			ActivityDao.getInstance().addObserver(timeBo);
			TimeDao.getInstance().addObserver(timeBo);
			
			// BackupBO
			backupBo = new BackupBO(backupDialog, backupConfigDialog);
			addPropertiesObserver(backupBo);
			
			// CmbActivities need to be loaded here, cannot be done in their's respectives BO constructors.
			loadCmbActivities();
			activityBo.updateActivityTable();
			timeBo.updateTimeTable();
			backupDialog.setBackupDateLabel();
			
			mainForm.setVisible(true);
		} catch (NullPointerException ex) {
			ErrorMessages.nullPointerError("Controller()", ex);
		} catch (ClassNotFoundException ex) {
			ErrorMessages.classNotFoundError("Controller()", ex);
		} catch (SQLException ex) {
			ErrorMessages.sqlExceptionError("Controller()", ex);
		}
	}