use protected instead of private