Finish up SM3

Done!
If this is the only place you got "if let" for, I'd rather refactor it to avoid "if let". The less feature gates we use, the better.