Added illegal argument checking. Illegal arugments cause throw of
IllegalArgumentsException.
Refactor .execute