add observer pattern
add a busy wait tester test wait & notify