deal with loose promises