almost done with thread safe
almost down with announce