Added some notes to explain the problem flow.