Wow, that's a lot of code for something that's really simple.

No slight intended there, just an observation I've been making since senior year (and beyond) at university -- the code to solve a similar problem can range from 10s to 1000s of lines, depending upon its ancestry.

Cheers