refactor colors plugin with visitor