Code Review

I'll be pushing a bunch of commits in here, you should probably just read them in order to get verbose info on each change.