* code refactoring: added a lock guard class for exception safe mutex handling and used it everywhere appropriate