Added and modified a lot of stuff.