I implemented alot of fixes