Fixing a bug where we would be using the wrong sync primitives
Moved to more async version of doing things.
All tests are passing