added protected functions