It feels there's an awful lot of repetition of very similar code for all the various bits staging map data. Can we refactor this?