Most users of the findCritical function didn't use more than one of the vectors returned. By splitting them up into seperate functions, we only have to compute what we'll use.