fixed part 1 to be more concurrent