split out the collect and process steps