Hazard Pointer refactoring