overridden methods should be protected i think