Finished through problem4