Add Matrix struct