hoist all_or_nothing out of the loop
remove *skip* special case: just omit the key