no need to have a matrix