set visibility protected in order to be accessed by child classes