Initialized with code from Section 4.1
Implementing code from Section 4.2
Merge branch 'Section-4.2'
Implementing code from Section 4.2
Implemented code from Section 4.3
Merge branch 'Section-4.3'
Implemented code from Section 4.3