Use protected methods

Use protected methods so that extending classes can override them.