added modes, including firefly.  Still trying to figure out why it doesn't loop