fix computePreferredLocations signature to not depend on underlying implementation