why not use `callable` ?