Added a bunch of stuff. Finished some TODOs

Don't really remember what I did specifically though.