implement deserialize
rename base class