add basic conjugate gradient solver