Do we need to do this both here and in `should_push`? Feels like something should be done on initialisation.