Refactoring
Changed wait()/notify() to BlockingQueue
Refactoring
Refactoring