for issue #46 shuffle feature done