It's a bit strange that you turn almost all of the methods to "private" except two of them when they all looked the same ("public new...Deserializer").