add engine solver (not functional beyond basic)