colour cycler abstracted
fixed merge