- replaced use of Object instance mutex with a private final Lock object - replaced Object signaling with specific condition signalling