Refactor property definitions

Made the properties initialize themselves. This looks cleaner, and it has the added value that if we ever do need to access them from somewhere else, we don't have to worry about initialization.

Will this need a CHANGELOG entry?