broke out common code into base deserializer class