small improvement to list?
don't walk the list twice in apply