language changes: some renamings, borrowing closure requires &mut.