preserve order of fields