Thought: wouldn't it be much more straightforward to check if `obj` is an `NSImage` instead of if `key` starts with `image`? That way, you could have multiple substitution images and you wouldn't need to make this `MImage` class.