make code more async