Just a minor note: I dislike shortening names. I would favor registerProperty() as a name here.