Client will have very specific instruction on how to use the library but we cannot control how a user is approaching multithreading and need to lock it down.