Clean up the code and properly separate different modules into different files. svn path=/branches/ntvdm/; revision=59344