Methinks you can probably do that in much less than 6 pages of code.