Data listener now receives data and produces a matrix