major design change and required fields property