why this volatile ?