added argumentexception processing