more algebraic machinery