Change private methods to protected to allow overwrite