Ok, this was a lot of fun to do....