in the event of invalid pair, pass back error, not use undef badly
specify conversion key order for deterministic behavior