is `protected` required?