add code generator, solver and a front end