superb argument error handling :)