refactored GASolver