heterogonous
not defined yet