I don't totally like the way we're creating all these wrapper functions, I think it would be pretty simple to accomplish this from `resolve()` without instantiating any new/unnecessary Functions...

But, this is more or less the way it's already working, so I'm not going to say "it MUST be done this way before merging", it's just something I think we could improve on in the future, and shrink code at the same time.