split MainWindow into mainwindow, mainpublicslots, mainprivateslots