add a bit of resilience around missing fields