Separate the basic code that manage the metadata struct.
Update headers.