testing almost complete, should be thread safe