a simple implement with hazard pointers