First commit after completing Section 2 and part of Section 3