Properties split

Part of the experimental UI testing for extra data, but is more useful to merge now as it splits out properties into specific modules for maintainability.
The UI features don't work but don't break any existing features.
Another eof with no blank line.