I'm wondering if it is safe to rely on `im` being accessible since it is defined in the outer, outer scope. It *should* be fine, but it feels like a bad idea.