making asynchronous
i have no idea what is in this update