adding gradients and tests to basic solver