significant progress on problem 4