change public to protected