making everything but the solver use the generic representation