Unless I am misreading the diffs - computeValidLocalityLevels, etc is a val in the class right ?
Wont that not need to be recomputed each time tasks are added/finished ?