doesn't need to be shared variable