collect data when apply()