Made a lot of stuff work. Need to fix it more though.