both: better handle the lifecycle of the client grab