lab4(finished)