Move AsyncFn to a separate lib