basic matrix object