assembling the matrix M by default was a bad idea - it's good to have the option to use it when available, but computing it is very expensive