Change private methods and properties to protected.

why `public` instead of `protected` ?