Why `std::make_shared<MergeHashTables>()`? Wouldn't a stack-allocated `MergeHashTable` suffice here?