a lot better handling for command line variables