configurable thread-safe