Should probably throw a `ValueError` if it is not a `Tool` or string type instead of silently failing.