(of course, you then need to match things in yet another loop, but that still reduces disk access a little bit)