use async more naturally for install dependencies plus catch errors when install dependencies