all in
matrix version