make private functions protected