worked on serialization