+ add method remove
+ improve method shuffle