completed solver