maybe use Q_SIGNALS and Q_SLOTS instead of signals and slots, just for style