basis for matrix version