use safe_free