wip on preconditioner (maybe works but needs tests vs cr and mr)