+now negative numbers can be also generated
+added unique_ptr support