improvements on protected methods