adding promises support