use ! instead of ~. Fix comm_close