added defaults, hints, and required elements