and add a ``is_callable`` check with an exception as we cannot typehint as ``callable`` in 5.3