Fixed tons of stuff, still needs to be tested!