Add a lot of stuff and fixes