add async feature that allow clients to break from the service with harming the service