Make various class properties protected not private, so subclasses can use them.

Our older code has a fetish for private properties I don't remember the logic for.
Merge pull request #35 from isaacgrant/protected-not-private

Make various class properties protected not private.