@shawngao5, you do not need to explain one by one. I may make mistake on some places. Just keep in mind, declare variable as close as possible.