[DO NOT MERGE] Initial commit of refactor. Still contains old code.

The "No code" comment is just a reminder to me that these variables aren't being used yet.