The multiple minimum degree (MMD) algorithm and its variants have enjoyed 20+ years of research and progress in generating ll-reducing orderings for sparse, symmetric positive de nite matrices. Although conceptually simple, e cient implementations of these algorithms are deceptively complex and highly specialized. In this case study, we present an object-oriented library that implements several recent minimum degree-like algorithms. We discuss how objectoriented design forces us to decompose these algorithms in a di erent manner than earlier codes and demonstrate how this impacts the exibility and e ciency of our C++ implementation. We compare the performance of our code against other implementations in C or Fortran.