tons of new features!  (see extended description)

not really, mostly just turned the file into a class, then added command
line arguments, but its a start!