Programmifiying the colors

This isn't entirely ready yet, but wanted to get something to look at up in case others want to build on it or provide feedback.