uhm... maybe i am implementing pairs, or maybe no