use Promise in init