added ability to reuse factorization, added warm-starting ability