more generalizations