history doesn't need to be global