adding protected getter methods for accessing private fields
updated generator API
update comments
change getNext() function name to next() according to general convention
for iterable collections
implementation of cartesian product and nwise generators
unit tests for generators