each block now executes asynchronously and does not wait for the previous one to complete to execute the next one