a little work re thread safety, in particular user transactions