Must be protected (or have getters) for concrete implementations.