private void add_color_for_author(string author_name, Color default_color) {
if (author_colors_.ContainsKey(author_name))
// already have it
return;
// these are the colors that are not used by existing authors at this point
List<Color> new_colors = default_author_colors_.Where(x => x.ToArgb() != author_color_.ToArgb() && !author_colors_.Values.Contains(x) ).ToList();
if (new_colors.Count > 0) {
author_colors_.Add(author_name, new_colors[0]);
} else
// at this point - way too many authors - we don't have enough colors - just use what he originally set
author_colors_.Add(author_name, default_color);
}