modification solver