Implements Assignment 4 Part 2-4

Combine