Switching to Swift for the language and Promise for the abstraction.