DWITE 2004-10 P3, 2004-11 P4: Revamped code structure for readability, improved functionality.
DWITE 2004-10 P1, P2, P4, P5, 2004-11 P1, 2004-12 P3, 2005-01 P1, P2, P5: Simplified code.
DWITE 2004-11 P2, P3, 2004-12 P1, P5, 2005-01 P3, P4: Tweaked code, variable names, comments.