initial implementation of serialization