renamed rainbow function