functionalised to_pairs