using improper mutex - fixed