more serialization implementation

I'm curious why you went with this append approach. This is less flexible than when you just return the value, and don't assume you already have one, or want to append to something else to begin with.

You can also just look at the simple metrics I outlined in the clean functions presentation. It's good to have less arguments, and output arguments are generally bad. In this cases you can have one argument instead of two and no output arguments.

Perhaps you did this differently at first? With the current approach the return value makes little sense.