replace separate Mutex and Condition classes with a single class,
Monitor