adds compound spec
impl id visit
fixes typename