wwall: After 16.b3 d5, White should be better. Perhaps 16...Re8 or 16...Qc7.17...Rc8 may be weak. Best may be 17...Bxh6 18.Qxh6 Re8.
Instead of 21.Nxd5, perhaps better is 21.Qh6 gxf5 22.Bxf5.
After 22.Qh6, Not 22...gxf5 23.Bxf5 wins.
Instead of 23.Rxd5, perhaps better is 23.cxd5 Ne7 24.Nxe7 Qxe7 25.d6 Qd7 26.Rfe1.
After 23.Rxd5, not 23...Nb4 24.Rd4! Nxc2 25.Rh4 wins.
Instead of 25...Nd4, perhaps 25...Kg8 and 26...Bc8.
Instead of 31...Rd2, perhaps 32...h5 and 33...Kh7.
Instead of 33...g5, perhaps 33...h5.
Instead of 34...Rxd2, perhaps 34...Ra1 and 35...h5.