Finished part 4 and added skeleton for testing