first implementation of async transformation