volatile and synchronized