Improving inheritance of properties and setting property defaults on init