Part One of the major rewrite, as of right now everything is broken. Do not use this build.