final version assign2