better handling of arguments