Updated test setup a bit
Made use of defer
Updated comment on Product
Added three implementations of Combination