use volatile, now have async relaod