draft for external serialisation