add safe io