[to merge with master] customize serialize/deserialize

I like that better. We should add an additional parameter to the `s3` adapter that gives a serialization check wrapper, then put it in `lib/shared`