work in progress adding a Matrix class