Accepts more fields and preserves the original order