moved solver for easer of use