adding matrix capabilities