I'm pretty sure we can make `populate()` more straightforward, but this isn't strictly required for this branch.

I've added it to my "postponed tasks" list :)