a lot of assignment 3