add validation for required properties