Better promise support