problem 4: partial