Simple protocol functions, elaboration marshalling functions