Break the problem apart.

I went ahead and put my first try to understand the problem. part one.