better handling of 'required' properties