add solver framework
Merge branch 'develop'