added better, more accessible  main() arguments, more clear and final exception handling