use promise construct popup