add public slot