This is assignment 5.1 first