switched private methods to protected