I wanted to address everyone's hatred of Mary. I was myself quite surprised at how much everyone dislikes Mary now. I don't think she's quite so horrible or conniving as everyone seems to think. I'll admit the "surgery" angle was a little hard for me to swallow but I figure is Sherlock said it I can take it. Recall the tunnel scene, Sherlock says 5 years back she became Mary but she couldn't of been involved with John for more than 2 years because she was there for him when Sherlock "died", Conclusion, she decided to leave that life at least 2 probably 3 years before she me John. Also she was former CIA (refer to the vault scene) so undoubtedly she started the path to assassin with at least a little persuasion. Yes she did free lance, not so good, but she did decide to leave it. Possibly she couldn't stomach it anymore. She does love John and that's why she was trying to kill Magnussen because she can't bare the thought of losing him. Her tracking Sherlock alone with a gun, meh, I personally don't see it as planning to kill him but I guess I'm alone on that. Also it took John 1 or 2 (can't remember) months to forgive her. Just because it was the next scene doesn't mean it was that quickly. Mary made a reference to not talking which I took to mean not talking at all not just on "the subject".
Anyhow just my thoughts. There are other points I can agree with the majority on and there are somethings I wouldn't mind being different but although Mary has totally changed for me I don't totally loathe her like most people on here seem to now.