first spec passes, key and value swaps