add get_expected_field, get_optional_field