move set_property_from_xml into separate header for re-use