Using OrderedDict instead of {} to keep field declaration order