updated version with a pardiso kind-of-working