preserve field ordering