det matrix impl