assignment 2 and 3 added