Reorganising everything to use signals and slots instead of listeners