Add documentation
Implement a little better locking mechanism

expire operations are now CAS friendly