fix async and metal