using the system's integer type everywhere
removed unused product iterator
support v0.2 and v0.3 versions of test_throws