Added shuffle and repeat functionalities