3.6 promise types and attributes