add solver using barrier
add memoizer