convert async types to custom defined promise
Closed the loop on the special types. Closes #1