made fields 'protected' so subclasses can use them