Model property constructor redo and various model optimisations