Added a bunch of stuff. Wow it's been a while since I commited code.