One thing that will bite you in the butt is that a 2D matrix will have to be rectangular, what that means is that when you read the first sensor, all other furnaces will get zero written to their row in the same column. A few common ways to circumvent this. First, use an array of cluster of an array (see the example). You can also use a cluster of a 1D array and a 2D array. Use the 1D array to store the number of values in a given row (counter) and let the 2D array do its autofilling thing. When you go to get the values in a row, use the counter to specify the subset to take. Many times I wrap this up in a functional global, aka action engine. If you do this a lot, we can help you implement one. If you need something to get started here is an example using an array of cluster of array. What I find interesting is that when you index one array, all of the others follow suit.