Jnf/review revisited

@seejee and @ninjapanzer - this is shaping up to a pretty big pull request. There's a lot of issues that kinda overlap in terms of when they need to go out. I'll let you know when I think it's finished, but I'm hoping you guys have some time to review what I've done here so far.

Let's merge this one and get moving on other stuff.