refactor pairing heap