added matrix init