make these protected for extensibility