lots of work on Iam project 2, look at diff from last commit for more info, I'm lazy