fix method visibility: private -> protected