Just use an unpacking wrapper instead of forcing the client to deal with std::pairs