nice work, i'll have some fun with this.

but man, its LONG!