let options pass back the input middle and output that will be used. move exit_nicely to the util namespace. ready to add options parsing tests
make testing options easier by not letting it terminate the program but rather throw and be caught in main/tests