Re-Redoing this in C#, Why?  Because Java has now officially pissed me off for the last time.