use promise to load app dependencies