changed visibility to protected to allow inheritance