Oops! yes. Should be protected.
Regarding templateable & renderable classes, there are two cases:
If the class only exists to facilitate output, then it should be in the output sub-namespace.
If the class represents something real, that can also be output, then it probably should not be in the output sub-namespace.