is_safe function
cleanup