Throw IAE if email is null
Improve argument checking