renamed checkVariablesAreValid: to variablesAreValid:
changed init method to throw NSInvalidArgumentException and updated tests accordingly
added class name to description and changed formatting of description method
switched for loop to use enumerateObjectsWithBlock: