reduce task
task whilst