changed all privates to protected