reduce requires