doc struct