use record type for intermediate part