made methods protected instead of public