Adding property system

Serves to support automatic dependencies between properties.