Last big pull request I make

Fixes #77 #93 #100 #101 #102