used async instead of weird odi stuff