Add serialization & deserialization methods / constructors, TODO: implement