Use protected methods for callbacks