Looks like you're choosing not to assume `this.resolve` is present statically if `this.cast` is. Good defensive coding, but unfortunate duplication.