Rewrite the codes / add comments / remove questions except Q1.6