cartesian products can now be defined via "x" operator