Add Cartesian mutation and unit tests