use safe_substitue