Replaces custom reentrant Mutex with Monitor