generate header work