moved the argument parsing to a separate class
attempted to clean up Program.cs

this way it's somewhat easier to see what everything's doing