generalizes
not defined yet