initial rewrite to be obj <-> buffer serializer