only serialise once