I think I am done, now I will have to test, alot of tests