Methods should be protected so that they can be used/overidden from outside default package