add shuffle feature