further work on adding the shell preconditioner