added `safe` option