switching to promises. one-to-one compilation only