CSE4300: Part 3