allow dynamic properties to be set on init