async chain with states