This is protected so it can be used by classes which extend this class.