added content hash ID gen