I've addressed this, but the question is how far we want to go?
If we want to make `ViewHistory` completely async that might be better to do in yet another PR, since the diff in this one is becoming quite messy already.