prepare to support optimal solver