started UseVariance, then split to new branch