add volatile keyword