added hazard pointers, tons of other stuff, mostly works now.