should make private data members volatile.