Object model with subclassing and a slightly better registry abstraction