fix possible concurrent modification
add Color.rainbow()
funky color path example