protected methods should be defined after public ones