refactor into function, add hsl coloring