updated : assignment 4