add solving capabilities and extra tests
implement functional if for symbolic values. Adds some nice tests \cc @namin