some API revisions for serializing