Solution

My initial solution commit.