Pedantic naming
Let's just refer to this as Doctrine now.

Forward looking, there is only one Doctrine.
Add factory method
Refactoring API.

Close down property API
Remove useless constructors
More clean up