rebased on new serializer interface