added support for shuffle, repeat, and crossfade