more operators, fix handling of degenerate case