add `invoke` method

Should this tolerate missing methods? My thought is "no" because in that scenario you'd just use `map` and handle that exactly how you'd want to.