Enforce some method visibility.

Note sure whether everyone will agree on which ones, but some methods
should probably be for sublasses only, not end users. Hence the
protected section.