added ordered_pair template class