Ton of Changes

Not sure what changes are in this commit, should've split this commit up
into more pieces.