done with all ex4 assignment