Finishes adding the architecture for arbitary adding of properties
Adds tracking to properties