Removed optimal Boolean from Product, but it is now decided by expressions being defined (they are passed only in optimize)