First cut at changes discussed in issue #3423

This version also needs cleaning (the two cholfact methods defined in the loop should be condensed to one) but I am putting this up for others to see what I meant.