Isn't it a bad idea to define private/protected properties in your implementation file? What if you want to subclass?
But on the other hand, it discourages something thats overused in other languages. Inheritance!
Obj-C would do well to find a better composition mechanism to make most of the inheritance issues a secondary concern.