implement determinant