First implementation with solver