add shuffle method