format and promise chained