add solver foundation