use None instead of {} for default value of prop_mapping to avoid recursive setting