add thoughts for solution
add test case
sol