Anthony

Very nice work man, I enjoyed looking over this. I added a few minor improvements which you can see in the diff.