I think this method might be doing too much - it's checking values to return true or false, and sometimes setting an instance variable. Could you break this method up?