not sure about this one.. why protected?
we should add final to most of these fields.