move working but need to fix async problem